2016-06-16 3 views
0

다음 코드를 사용하여 "req.GetResponse()"에 대한 오류 (의도적으로, 현재)를 XML로 제 3 자 웹 서비스에 전송합니다. 오류, 아래에 자세히 설명되어 있습니다. 하는 GetResponse에서오류 (제 3 자) 웹 서비스에서 응답 정보 가져 오기

byte[] bytes = Encoding.ASCII.GetBytes(myXMLData); 
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(myWebsite); 
using (Stream os = req.GetRequestStream()) 
{ 
    os.Write(bytes, 0, bytes.Length); 
} 
WebResponse response = req.GetResponse(); 
string responseStream = StringFromResponseStream(response); 

오류()

예외가 발생합니다 : 'System.New.WebExtension'을 System.dll을에 추가 정보 : (400) 잘못된 요청

: 원격 서버에서 오류를 반환

피들러에서이 호출을 추적하면 서비스에 대한 응답에 내가 얻으려는 훨씬 더 유용한 오류 (아래의 원시보기)가 포함되어 있음을 알 수 있습니다.

HTTP/1.1 400 Bad Request 
Date: Thu, 16 Jun 2016 10:42:26 GMT 
Cache-Control: private 
X-Content-Type-Options: nosniff 
X-Frame-Options: SAMEORIGIN 
Content-Type: text/plain; charset=UTF-8 
Content-Length: 54 
Caseprovider-Credentials: <snip> 
Caseprovider-Credentialshash: <snip> 
Caseprovider-Apiversion: 15 
Connection: close 

No supported action 'SomeName' available for 'SomeValue' 

변수에 '시계'를 갖는 것은 내가 (아마도 내가 간과 한 것을 간단하게 뭔가)

답변

0

결국에 대한 해결책을 찾았을에서이를 얻을 수있는 위치를 표시하지 않는 것; 여기서 'result'는 프로세스의 내용을 포함합니다. 더 할 일이 있지만, 이것이 내가 필요한 것에 대한 기본 사항입니다.

using (var httpClient = new HttpClient()) 
{ 
    httpClient.BaseAddress = new Uri(myWebSite); 
    httpClient.DefaultRequestHeaders.Accept.Clear(); 
    httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/xml")); 

    StringContent stringContent = new StringContent(myXMLData); 
    stringContent.Headers.ContentType = new MediaTypeHeaderValue("text/xml"); 
    HttpResponseMessage httpResponseMessage = httpClient.PostAsync(httpClient.BaseAddress, stringContent).Result; 

    string result = httpResponseMessage.Content.ReadAsStringAsync().Result; 
}