2017-01-09 10 views
0

임베디드 장치에서 내 웹 서버로 POST 요청을 보내려고하지만 웹 서버가 오류 400을 반환합니다. HTTP POST 요청이 400을 반환하고 SERVER_PORT_SECURE가 사용되지 않습니다.

요청 나는 내 서버의 포트 80에 보내고있다 : 다음

POST /api_back.php HTTP/1.1 
Host: mysubdomain.mydomain.com 
User-Agent: AppleWebKit/531.21.10 
Accept: */* 
Content-Type: application/x-www-form-urlencoded 
Cache-Control: no-cache 
Accept-Charset: utf-8, us-ascii 
Pragma: no-cache 

data=10,1,1,1,1,-48%0D%0A10,1,1,1,1,-48%0D%0A10,1,1,1,1,-47%0D%0A10,1,1,1,1,-48%0D%0A10,1,1,1,1,-48%0D%0A10,1,1,1,1,-47%0D%0A10,1,1,1,1,-47%0D%0A 

나는 다음과 같은 응답을 얻을 :

http/1.1 400 bad request 
 
date: sun, 08 jan 2017 16:59:54 gmt 
 
server: apache/2.4.23 (unix) openssl/1.0.1e-fips mod_bwlimited/1.4 
 
accept-ranges: bytes 
 
connection: close 
 
content-type: text/html 
 

 

 

 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 
<html> 
 
    <head> 
 
    <title>400 Bad Request</title> 
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
 
    <style type="text/css"> 
 
     body { 
 
     \t font-family: Verdana, Arial, Helvetica, sans-serif; 
 
     \t font-size: 12px; 
 
     \t background-color:#367E8E; 
 
     \t scrollbar-base-color: #005B70; 
 
     \t scrollbar-arrow-color: #F3960B; 
 
     \t scrollbar-DarkShadow-Color: #000000; 
 
     \t color: #FFFFFF; 
 
\t \t \t margin:0; 
 
     } 
 
     a { color:#021f25; text-decoration:none} 
 
     h1 { 
 
     \t font-size: 18px; 
 
     \t color: #FB9802; 
 
     \t padding-bottom: 10px; 
 
     \t background-image: url(sys_cpanel/images/bottombody.jpg); 
 
     \t background-repeat: repeat-x; 
 
     \t padding:5px 0 10px 15px; 
 
\t \t \t margin:0; 
 
     } 
 
     #body-content p { 
 
     \t padding-left: 25px; 
 
     \t padding-right: 25px; 
 
     \t line-height: 18px; 
 
     \t padding-top: 5px; 
 
     \t padding-bottom: 5px; 
 
     } 
 
     h2 { 
 
     \t font-size: 14px; 
 
     \t font-weight: bold; 
 
     \t color: #FF9900; 
 
     \t padding-left: 15px; 
 
     } 
 
    </style> 
 
    </head> 
 
    <body> 
 
    <div id="body-content"> 
 
<!-- start content--> 
 

 
<!-- 
 
instead of REQUEST_URI, we could show absolute URL via: 
 
http://HTTP_HOST/REQUEST_URI 
 
    but what if its https:// or other protocol? 
 
    
 
    SERVER_PORT_SECURE doesn't seem to be used 
 
    SERVER_PORT logic would break if they use alternate ports 
 
--> 
 

 
<h1>400 Bad Request</h1> 
 
<p>Your browser sent a request that this server could not understand:</p> 
 
    <blockquote> 
 
    (none) (port 80) 
 
    </blockquote> 
 
<p> 
 
    Please forward this error screen to 31.186.174.155's 
 
    <a href="mailto:[email protected]?subject=Error message [400] 400 Bad Request for (none) port 80 on Sunday, 08-Jan-2017 17:59:54 CET"> 
 
    WebMaster</a>. 
 
</p> 
 
<hr /> 
 

 

 
<!-- end content --> 
 
    </div> 
 
    </body> 
 
</html>

오류가 호스트 이름을 제안하는 것을 uri 요청이 잘못되었으므로 POST 링크의 전체 URL도 시도했습니다.

POST http://mysubdomain.mydomain.com/api_back.php HTTP/1.1 
Host: mysubdomain.mydomain.com 
... 

행운이 없습니다. 다른 것들은 저도 같은 오류가 발생하는 것 호스트 헤더

그들 모두에

  • 다른 사용자 에이전트
  • HTTP를/1.0
  • 없음 하위 도메인을 시도했다.

    누구든지 제안 하시겠습니까? 헤더가 누락 되었습니까? 헤더에 오류가 있습니까?

    도움이나 의견을 보내 주시면 감사하겠습니다.

    감사합니다, 유사한 문제를 찾고 당신의 사람들을 위해 로버트

+0

요청에 'Content-Length' 헤더가 없음을 알았습니다. 몇 가지 테스트를 마치면 아파치가 필요하지는 않지만 추가 해보십시오. – Rei

답변

0

; 문제는 쉼표가 분명히 게시 요청의 유효한 문자가 아니며 쉼표와 수명이 모두 양호하다는 것입니다.