首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

HTTP 400 Bad Request 排查:請求行格式、Host 域、編碼問題

     編輯:程式設計綜合問答

現象

發送 `GET https://utf8.sms.webchinese.cn/?Uid=... HTTP/1.1` 返回 `400 Bad Request`,但瀏覽器直接訪問正常。

常見原因

  1. 請求行包含完整 URL:HTTP/1.1 規範要求請求行為 ` HTTP/1.1`,**不應包含 scheme+host**。代理模式才用完整 URL。
    修正:`GET /?Uid=... HTTP/1.1` + `Host: utf8.sms.webchinese.cn`。
  2. Header 大小寫/拼寫:`Content-Type`、`Content-Length` 標準寫法。
  3. 中文參數未 URL 編碼:`smsText=valid code is:[595375]` 中的空格、冒號、括號需 `encodeURIComponent`。
  4. Host 域包含端口:`Host: 219.235.3.148:80` 標準允許,但某些服務器要求不帶默認端口。

調試建議

  • 抓包對比瀏覽器正常請求與程序請求差異(Wireshark/Fiddler)。
  • 用 `telnet`/`nc` 手工發送最小請試驗。
  • 確認目標服務是否要求 HTTPS(題主用 HTTP,端口 80)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved