메소드 get을 사용하여 urlrequest/urlstream에서 가능한 사용자 지정 헤더?

StackOverflow https://stackoverflow.com/questions/223312

  •  03-07-2019
  •  | 
  •  

문제

정말 간단하게 :

var req:URLRequest=new URLRequest();
req.url="http://somesite.com";
var header:URLRequestHeader=new URLRequestHeader("my-bespoke-header","1");
req.requestHeaders.push(header);
req.method=URLRequestMethod.GET;
stream.load(req);

그러나 Wireshark로 트래픽을 검사하면 my-bespoke-header 전송되지 않습니다. 내가 바꾸면 URLRequestMethod.POST 그리고 일부 데이터를 추가하십시오 req.data, 그런 다음 헤더가 전송되지만 수신 응용 프로그램은 게시물이 필요하지 않습니다.

이 문서는 전송되지 않을 헤더의 블랙리스트를 언급합니다. my-bespoke-header 이 중 하나가 아닙니다. 원래 요청은 동일한 도메인의 다른 포트에서 나온다는 것을 언급 할 가치가 있습니다. 정책 파일 로그에보고 된 것은 없으므로 가능성이 낮아 보이지만 CrossDomain.xml을 allow-http-request-headers-from 이것이 크로스 도메인 문제가 아니라는 사실에도 불구하고? 아니면 Flash Player의 문서화되지 않은 기능입니까? 게시물 요청으로 만 사용자 정의 헤더를 보낼 수 있습니까?

도움이 되었습니까?

해결책

내가 수집 할 수있는 것에서, HTTP Get에 대한 사용자 정의 헤더 지원 부족에 대한 귀하의 가정은 실제로 표준 라이브러리에서 문서화되지 않은 기능 (또는 버그?)입니다.

어쨌든 당신은 as3httpclient 귀하의 목적에 맞고이 문제를 해결할 수 있습니다. 다음은 a의 관련 스 니펫입니다 게시하다 이 라이브러리 개발자의 블로그에서 :

"나는 HTTP/GET 요청의 헤더를 설정할 수 없었습니다. MacRomedia Flash Player는 게시물 요청에 대한 헤더 만 설정할 수 있습니다. Ted Patrick 과이 문제를 논의했으며 원하는 것을 달성하기 위해 소켓을 달성 할 수있는 방법을 알려주었습니다. 그는 나에게 코드-니펫을주기에 매우 친절했다.

다른 팁

이 제한이 한 번에 문서화되지 않은 경우 더 이상 그렇지 않습니다. 보다:

http://livedocs.adobe.com/flex/3/langref/flash/net/urlrequest.html#requestheaders

"[...] 브라우저 제한으로 인해 사용자 정의 HTTP 요청 헤더는 GET 요청이 아닌 게시물 요청에 대해서만 지원됩니다. [...]"

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top