1

次のコードが与えるエラーは

HTTP/1.0 400 Bad Request: リクエスト ラインの HTTP バージョンが無効です。行: GET /http/send-message?to=233445566&message=Some String

    $curl = curl_init();
     curl_setopt_array($curl, 
     array( CURLOPT_RETURNTRANSFER => 1,
            CURLOPT_HEADER => 1,
            CURLOPT_TIMEOUT => 4,
            CURLOPT_VERBOSE => 1,
                    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                    CURLOPT_URL => 'http://GATEWAY:9710/http/send-message?to='.$mobileNumber.'&message='.$message

     ));

何が起こっているのか教えてください。

4

1 に答える 1

1

これは cURL ではなく、HTTP のしくみです。URL のドメイン部分はHost:、リクエストではなくヘッダーで渡されます。リクエスト自体は/、ドメインの後の最初から始まります。

戻ってきたエラーは、明示的に HTTP 1.1 を設定していて、サーバーが 1.0 サーバーであることが原因のようです。

編集:上記のコメントで問題が解決したようです。一般に、URL に入れるものを urlencoding すると便利です。:)

于 2013-01-21T06:51:04.880 に答える