2017-12-14 5 views
0

가 목록에 몇 가지 흥미로운 헤더가 발견 크롬 브라우저의 F12 도구를 사용하여 타사 API를 검사 할 때 : 나는 잘 알고있어 몇 가지 헤더와 함께C# HttpRequest를 헤더 콜론 사랑의 닷넷 4.0

:authority:m.somedomain.com 
:method:GET 
:path:/api/somevalues 
:scheme:https 

을, 같은 수락, 인코딩 등.

http/https 요청을하려면 .Net 4.0을 사용하고 있습니다. 콜론으로 시작하는이 헤더를 추가하려고 할 때 오류가 첫 번째 항목에 발생합니다 :

 httpRequest.Headers.Add(":authority", "m.somedomain.com"); 
     httpRequest.Headers.Add(":method", "get"); 
     httpRequest.Headers.Add(":path", sPath); 
     httpRequest.Headers.Add(":scheme", "https"); 

오류 메시지 :

지정된 값이 유효하지 않은 HTTP 헤더 문자가 있습니다.

일부 검색 후 http/2에 대해 이야기하는 기사를 발견했습니다. 그러나 .NET 4.0에는 http/1.0 및 http/1.1 만 사용할 수 있습니다.

더 새로운 .NET 버전으로 업그레이드해야합니까?

미리 감사드립니다.

답변

0

가능합니다. http/2는 .NET 버전 4.6.2에서 지원됩니다.

프로젝트 탭을 클릭하고 하단에 속성을 선택하십시오. 그리고 .NET 버전을 4.6.2로 변경하십시오.

나는 또한 헤더에 세미 콜론을 포함하면 안된다는 것을 99.9 % 확신합니다. 또한

:

httpRequest.Headers.Add(":method", "get"); 

요청 메소드는 헤더에 정의되어서는 안된다. 그렇게하는 것이 좋습니다.

httpRequest.Method = "GET"; 

일반적으로 구성표는 URL의 접두사로 표시됩니다. 예 :

string webAddr = "https://www.google.com/"; 
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(webAddr);