1
현재 Windows Phone 8에서 Wunderlist의 API를 사용하여 할 일 목록을 만들려고합니다. 그러나 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;
}
: 그리고 여기 내 코드의 NetworkCredential가 NTLM/Kerberos를위한 것입니다으로
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();
}
이 .credentials와
왜'HttpClient'를 사용하지 않습니까? – SLaks
또한 값을 URL 인코딩해야합니다. – SLaks
HttpClient가 훨씬 더 쉽습니다. 나는 그것을 시도 할 것이라고 생각한다. 고마워! – kjesle