2016-09-29 4 views
1

왜 이것이 통과하는지 궁금합니다. 아래의 별표는 % 2A로 인코딩 된 퍼센트가 아닙니다.HttpUrl.Builder.addPathSegment % 2A는 별표를 인코딩해야합니까?

HttpUrl url = new HttpUrl.Builder() 
    .scheme("http") 
    .host("host") 
    .addPathSegment("foo *") 
    .build(); 
assertEquals("http://host/foo%20*", url.toString()); 
assertEquals("/foo%20*", url.encodedPath()); 
+0

가교 여기 : https://github.com/square/okhttp/issues/3488 –

답변

-1

주요 브라우저 (파이어 폭스, 사파리 및 크롬) %의 인코딩을 선택하지 * 20 %는 경로 세그먼트이며, 따라서 OkHttp 그 행동과 일치하도록 선택 등.

브라우저와 OkHttp가 서로 다른 URL의 유일한 부분은 Safari와 OkHttp가 오류가 발생하고 Firefox가 그대로 유지되며 Chrome 퍼센트가 % 20으로 인코딩되는 호스트입니다.

Research, Github, Blog Post

+0

당신은 당신의 연결 주위에 약간의 컨텍스트를 추가 할 수 있습니까? 링크는 훌륭하고 (종종 귀속에 필요함) 기억해야하지만, 귀하의 답변은 여전히 ​​유효해야하며, 미래에 링크가 죽어 버릴 경우에는 유효해야합니다. 행운을 빕니다! – Frits

+0

예를 들어, _Research Shows_가 언급했는데, 연구가 수행 된 것의 빠른 실행을 추가 할 수 있습니까? 기본적인 결과는 무엇 이었습니까? 그걸 아주 훌륭한 대답으로 바꾸는 것은 아주 먼 일 이겠지요 :) – Frits

+0

해결책에 대한 링크는 환영하지만, 답이 없으면 유용하다는 것을 확인하십시오 : [링크 주변의 문맥을 추가하십시오] (// meta.stackexchange.com/a/8259) 그래서 동료 사용자는 그것이 무엇인지, 왜 있는지, 그리고 그 대상이있는 이유를 알게 될 것입니다. 그러면 대상 페이지를 사용할 수없는 경우에 링크하려는 페이지의 가장 관련있는 부분을 인용하십시오. [링크 이상인 답변은 삭제 될 수 있습니다.] (// stackoverflow.com/help/deleted-answers) – sudo

관련 문제