7

JSONデータを含むPOSTをサーバーに送信するための次のコマンドを作成しました。サーバーはリクエストをリダイレクトし、同じデータで GET を送信する必要があります。

curl  -L -i -XPOST \
     -d 'id=105' \
     -d 'json={"orderBy":0,"maxResults":50}'  http://mysite.com/ctlClient/

私は応答を受け取ります:

HTTP/1.1 302 Found
Date: Thu, 04 Jul 2013 13:12:08 GMT
Server: Apache
X-Powered-By: PHP/5.3.19
Set-Cookie: PHPSESSID=1hn0g8d7gtfl4nghjvab63btmk2; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
location: http://mysite.com/fwf/online/
Content-Length: 0
Connection: close
Content-Type: text/html

HTTP/1.1 200 OK
Date: Thu, 04 Jul 2013 13:12:08 GMT
Server: Apache
X-Powered-By: PHP/5.3.19
Set-Cookie: PHPSESSID=16akc7kdcoet71ipjflk9o9cnm5; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 1
Connection: close
Content-Type: text/html

アクセスログから私は見る:

 "POST /ctlClient/ HTTP/1.1" 302 - "-" "Apache-HttpClient/4.1 (java 1.5)"
 "GET /fwf/online/ HTTP/1.1" 200 1 "-" "Apache-HttpClient/4.1 (java 1.5)"

ここまでは順調ですね、

問題は、GET投稿に追加されたデータを受信しないことです。リダイレクト中に私のデータが何らかの形で却下されたように聞こえます。Android クライアントからは機能するため、サーバー側の問題ではありません。

POST データを GET リクエストに渡すにはどうすればよいですか?

どうもありがとうございました、

[編集]

@nif は 7.28.0 にアップグレードCURLすることを提案しました。

それでも同じ問題が発生します

[情報]

初めて行くhttp://mysite.com/ctlClient/index.php場所:

 case 105: // id=105
        session_unset();
        session_start();
        foreach($_POST as $key => $value){$_SESSION[$key] = $value;}
        ctlGotoSameDomain("/fwf/online/"); // <- aka redirect
        return true;

リダイレクト後、私はそこに行き/fwf/online/index.php、そこに私の要求は空です:

public function __construct() {
        $this->json = isset($_SESSION['json']) ? $_SESSION['json'] : null;
        msqLogFile("fwf/post", Array('post' => 'Request: '.$this->json));

    }

http://mysite.com/ctlClient/index.php2 つのパラメーターを適切に取得する:idおよびjson

4

2 に答える 2

1

-bCookie を有効にするには、スクリプトに追加する必要があります。CURL はデフォルトでそれらを使用せず、この問題によりセッション ID が変更されました。したがって、データは転送されません。

curl -b -L -i -X POST \
 -d 'id=105' \
 -d 'json={"orderBy":0,"maxResults":50}'  http://mysite.com/ctlClient/

今、その作業

于 2013-07-05T06:59:36.367 に答える