나는 웹과 안드로이드 구성 요소를 가지고있는 앱을 가지고 있는데 그것들 각각을 식별하고 싶다. 이를 위해 명시 적으로 HTTP 헤더의 User-Agent를 안드로이드에 특정한 것으로 설정하고 있습니다. 하지만 아파치는 User-Agent를 나에게 넘겨주지 않는다. 동일한 컴퓨터에서 브라우저로 동일한 URL을 방문하면 HTTP_USER_AGENT를 포함하여 $ _SERVER 배열을 덤프 할 때 PHP 코드의 전체 헤더 목록을 가져옵니다. 하지만 안드로이드 클라이언트 (SCRIPT_NAME 및 REQUEST_TIME 제외)와 아무 것도 얻지 못합니다. 아파치 필터가 작동하지 않습니까?안드로이드와 HTTP 헤더와 아파치를 가진 PHP
Java 코드에서 헤더를 설정하지 않으면 아무 것도 전달되지 않습니다. 나는 tcpdump를 사용하여 User-Agent가 서버에 전달 될 때 다음을 참조한다.
User-Agent: Android app1.0\r\n
모든 도움을 주시면 감사하겠습니다.
EDIT : 다음은 Android 앱에 User-Agent 헤더를 추가하는 데 사용하는 코드입니다.
HttpPost postObj = null;
httpHost = new HttpHost(MyBaseURL);
postObj = new HttpPost(urlpath);
postObj.setHeader("User-Agent", "Android app1.0");
HttpResponse response = httpClient.execute(httpHost, postObj);
감사합니다,
P
당신이 HttpClient를하고 HttpPost/HttpGet 웹 요청을 사용하고 있습니까에
을 변경해보십시오? 헤더를 어떻게 추가하고 있습니까? 요청에 헤더를 추가하는 방법에 대한 약간의 코드를 표시하면 더 명확한 아이디어를 얻을 수 있습니다. – Rich
아파치 자체로 필터링하지는 않지만, 헤더를 정리할 수있는 보안 모듈, mod_security가 하나 있습니다. –
@ 리치 - 원래 질문에 사용하는 코드를 추가했습니다. 바보 같은 철자법을 사용하지 않음 나는 tcpdump에서 볼 때 헤더에 User-Agent를 추가하고 있다고 확신한다. – user220201