現象
發送 `GET https://utf8.sms.webchinese.cn/?Uid=... HTTP/1.1` 返回 `400 Bad Request`,但瀏覽器直接訪問正常。
常見原因
- 請求行包含完整 URL:HTTP/1.1 規範要求請求行為 ` HTTP/1.1`,**不應包含 scheme+host**。代理模式才用完整 URL。
修正:`GET /?Uid=... HTTP/1.1` + `Host: utf8.sms.webchinese.cn`。
- Header 大小寫/拼寫:`Content-Type`、`Content-Length` 標準寫法。
- 中文參數未 URL 編碼:`smsText=valid code is:[595375]` 中的空格、冒號、括號需 `encodeURIComponent`。
- Host 域包含端口:`Host: 219.235.3.148:80` 標準允許,但某些服務器要求不帶默認端口。
調試建議
- 抓包對比瀏覽器正常請求與程序請求差異(Wireshark/Fiddler)。
- 用 `telnet`/`nc` 手工發送最小請試驗。
- 確認目標服務是否要求 HTTPS(題主用 HTTP,端口 80)。