1
我目前正在嘗試使用來自Wunderlist的API在Windows Phone 8上創建待辦事項列表。但是,我無法在POST請求中傳遞我的憑據。這裏是我的代碼:使用HttpWebRequest發送憑據
public async Task<System.IO.TextReader> DoRequestAsync(WebRequest request)
{
var task = Task.Factory.FromAsync((cb, o) => ((HttpWebRequest)o).BeginGetResponse(cb, o), res =>
((HttpWebRequest)res.AsyncState).EndGetResponse(res), request);
var result = await task;
var response = result;
var stream = response.GetResponseStream();
var sr = new System.IO.StreamReader(stream);
return sr;
}
和:
public async Task<System.IO.TextReader> Login(string email, string password)
{
//User Credentials
WebClient client = new WebClient();
var parms = new Dictionary<string, string>();
parms.Add(email, password);
//Request
HttpWebRequest request = HttpWebRequest.CreateHttp(API_URL + "/login");
request.AllowReadStreamBuffering = true;
request.Method = HttpMethod.Post;
// This doesn't seem to work
request.Credentials = new NetworkCredential(email, password);
var tr = await DoRequestAsync(request);
return tr;
}
private string DictToString(Dictionary<string, string> dict)
{
StringBuilder builder = new StringBuilder();
foreach(KeyValuePair<string, string> kvp in dict)
{
builder.Append(kvp.Key + "=" + kvp.Value + "&");
}
return builder.ToString();
}
欣賞的幫助
爲什麼不使用'HttpClient'? – SLaks
另外,您需要對您的值進行網址編碼。 – SLaks
看起來像HttpClient更容易。我想我會嘗試,謝謝! – kjesle