웹 서버에 게시물 데이터 (json)를 보내려고합니다. 그것은 아주 기본적인 일이지만 Windows 8 api 모든 복잡해야합니다 :/마이크로 소프트 제공 한 샘플 전혀 작동하지 않습니다. http://code.msdn.microsoft.com/windowsapps/HttpClient-sample-55700664/sourcecode?fileId=50955&pathId=797575364 scenerio 5 - 서버에 보내고 있지만 보낼 수없는 것들 (어쩌면 내가 문자열을 변환 해요 때Windows 8에서 게시물 데이터 전송
var request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/json";
request.Method = "POST";
using (var requestStream = await request.GetRequestStreamAsync())
{
var writer = new StreamWriter(requestStream);
writer.Write(data);
writer.Flush();
}
using (var response = await request.GetResponseAsync())
{
using (var responseStream = response.GetResponseStream())
{
var reader = new StreamReader(responseStream);
var answer = reader.ReadToEnd();
return answer;
}
}
는 내가 전에 말했듯이) ... 약간의 문제가 스트리밍)
byte[] byteArray = Encoding.Unicode.GetBytes(data);
MemoryStream stream = new MemoryStream(byteArray);
StreamContent streamContent = new StreamContent(stream);
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, url);
request.Content = streamContent;
request.Headers.TransferEncodingChunked = true;
var httpClient = new HttpClient();
HttpResponseMessage response = await httpClient.SendAsync(request);
string responseString = await response.Content.ReadAsStringAsync();
하지만 또 다른 아이디어를 내놓았다이 솔루션은 작동 (하지만 ...하는이 솔루션은 큰있다 단점 - 서버 응답은 http 코드 422를 가질 수 있으며 즉시 응용 프로그램이 충돌합니다. 어떻게 두 번째 솔루션을 사용하여 HTTP 응답 코드를 확인할 수 있습니까? 사전 :
답장을 보내 주셔서 감사합니다.하지만 여전히 몇 가지 문제가 있습니다. \t 잡기 (WebException이 예) { \t (ex.Status == WebExceptionStatus.UnknownError) \t \t Helper.debug가있는 경우 ("실패를 보내기"); Helper.debug (ex.Status.ToString()); } 그리고 어떻게 생각하세요? ex.Status.ToString()은 "ProtocolError"를 반환하고 WebExceptionStatus에는 해당 유형이 없습니다. oWebExceptionStatus의 항목 중 아무 것도 내 ex.Status (if 문)에 없습니다. 그 이상한 ... 메서드 .ToString : / –