게시물 요청 보내기 : system.net.webexception
-
05-07-2019 - |
문제
이 방법을 사용하여 게시물 요청을 보내는 것은 이번이 처음이 아니며 아무런 문제가 없었습니다.
public static Stream SendPostRequest(Uri uri, byte[] postData)
{
var request = WebRequest.Create(uri);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postData.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(postData, 0, postData.Length);
requestStream.Close();
return request.GetResponse().GetResponseStream();
}
request.getRequestStream ()에서 system.net.webexception을 받고 있습니다. 기본 연결이 닫혔습니다. Send에서 예기치 않은 오류가 발생했습니다.
더 흥미로운 점은 일부 컴퓨터에서 완벽하게 작동하지만 내 컴퓨터 (Windows 7 베타) 및 프로덕션 서버 (Windows Server 2008)에서는 작동하지 않습니다. 추가 정보:
작업 - Windows XP- .NET 2.0
작업 -Windows XP- .NET 3.5
작업 -Windows Server 2003 -.NET 3.0
작동하지 않습니다 - Windows Vista -.NET 3.5
작동하지 않습니다 -Windows Server 2008 -.NET 3.5
작동하지 않습니다 -Windows 7 베타 - .NET 3.5 SP1
시험을 마친:
- 많은 것들 여기, 아무것도 도움이되지 않았습니다.
- 사용 웹 클라이언트, 아무것도 바뀌지 않았다.
- 이것을 조정합니다 옵션, 그러나 주목할만한 차이는 눈치 채지 못했습니다.
- 시험을 마친 Wireshark. 아주 좋은 도구.
해결되었습니다. 킨다
나는 언급하는 것을 잊었지만 Uri는 HTTPS였습니다 ... HTTP를 시도해 보았습니다. 믿을 수 없어, 나는 더 빨리 시도하지 않았다 ...
그럼에도 불구하고 누군가 가이 모든 상황에 빛을 비추는다면 감사하겠습니다.
해결책
나의 첫 번째 공격 계획은 사용하는 것입니다 Wireshark 각 경우 네트워크 수준에서 무슨 일이 일어나고 있는지 확인합니다. 각 기계가 보내는 것을 확인하십시오.
또한 운영 체제 간의 차이점을 언급했지만 모두 동일한 버전의 .NET (아래로)가 설치되어 있습니까?
다른 팁
일을합니까? 아마도 프록시 구성 문제 일 것입니다 (proxycfg
등).
또한 - 물건을 단순화하려면 (미지수의 수를 줄이기) 사용을 고려하십시오. WebClient
게시물을 수행하려면 :
using (WebClient client = new WebClient())
{
client.Headers.Add("content-type","application/x-www-form-urlencoded");
client.UploadData(address, data);
// or more simply
client.UploadValues(address, nameValuePairs);
}
다음 옵션 중 하나 이상을 조정해보십시오.
- Sendchucked
- 허용
- 트랜스퍼 인코딩
또한 다양한 구성으로 그들 사이의 차이점에 주목하십시오.