Как создать gist на github с базовой аутентификацией в C#
Я использую C# .net 4.0 и хотел бы создать общедоступный gist с моим именем пользователя и паролем (используя базовую аутентификацию) на github. http://developer.github.com/v3/auth/#basic-authentication
Если я использую правильный пароль, я получаю ответ: The remote server returned an error: (404) Not Found.
Если я использую неправильный пароль, я получаю ответ: The remote server returned an error: (401) Unauthorized.
Как я могу аутентифицировать и опубликовать публичную суть под своим именем пользователя?
Http://developer.github.com/v3/gists/#create-a-gist . json Я пытаюсь послать:
{
"description": "the description for this gist",
"public": true,
"files": {
"file1.txt": {
"content": "my new content "
}
}
}
C# .NET 4.0 code
private void button_createGist_Click(object sender, EventArgs e)
{
String jsonMessage = "{ "description": "the description for this gist", "public": true,"
+ ""files": { "file1.txt": {"
+ ""content":"my new content " } }}";
String _url = "https://api.github.com/gists/";
HttpWebRequest req = WebRequest.Create(new Uri(_url)) as HttpWebRequest;
String userName = "myUserName";
String userPassword = "pass123";
string authInfo = userName + ":" + userPassword;
authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
req.Method = "POST";
req.ContentType = "application/json";
// req.Headers.Add(string.Format("Authorization: token {0}", oauthToken));
//req.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(new ASCIIEncoding().GetBytes(username + ":" + password)));
req.Headers.Add("Authorization", "Basic " + authInfo);
StreamWriter writer = new StreamWriter(req.GetRequestStream());
System.Diagnostics.Debug.WriteLine(jsonMessage);
writer.Write(jsonMessage);
writer.Close();
string result = null;
using (HttpWebResponse resp = req.GetResponse() as HttpWebResponse)//Exception here
{
StreamReader reader =
new StreamReader(resp.GetResponseStream());
result = reader.ReadToEnd();
System.Diagnostics.Debug.WriteLine(result);
}
}