• 締切済み

httpリクエストのbody部分について

Bnbnbnta101の回答

回答No.1

urlデコードだけではダメでした? その後base64デコードはいらない気がしますが。

mikanbakudan
質問者

補足

回答有難うございます。 URLデコードだけだと、%2fと%2b部分が置き換わるだけで他の部分が何も変わりませんでした。 他に何か変換が必要だったりするのでしょうか?

関連するQ&A

  • PEAR HTTP_Requestでのヘッダ送信

    PEARのHTTP_Requestを使用し、 下記処理にてTEST_URL向けにPOSTとヘッダを同時に送信する処理を行いたいのですが 411 Length Requiredで返ってきてしまします。 サーバのログには Invalid URI in request Connection: Keep-Alive というログがerrorログに出ています。 そこでRFCを読んで見ると、 転送コーディングが施されていない場合は Content-Length ヘッダは送られなければならないが、 メッセージボディ中のオクテット数と 正確に一致しなければならないとの記載がありました。 ここに引っかかっているのかもと思い対策しようと思いましたが メッセージボディのlength(下記の☆部分)をどのように拾うかがわかりません。 require_once "HTTP/Request.php"; $req = &new HTTP_Request(TEST_URL,array()); $req->setURL(TEST_URL); $req->setMethod(HTTP_REQUEST_METHOD_POST); $req->addHeader('Host',"test.hogehoge.jp\r\n"); $req->addHeader('Content-Length',"-☆-\r\n"); $req->addHeader('Connection', "Keep-Alive\r\n"); $req->addHeader('User-Agent',"TEST ABCDEFG\r\n"); $req->addPostData('TEST_POST', 'testnano'); $result = $req->sendRequest(); if(PEAR::isError($result)) { echo $result->getMessage(); echo "<br />"; } else { echo $req->getResponseCode(); echo "<br />"; echo $req->getResponseBody(); echo "<br />"; } もしかして違う原因でしょうか? よろしくおねがいします。

    • 締切済み
    • PHP
  • HTTPリクエストでのXMLデータ送信

    画面からあがって来たデータを、XML形式にして HTTPリクエストを投げる実装をJAVAで行う必要があります。 「HttpURLConnection」を利用し、Body部分に埋め込む方法を 考えているのですが、他にいい方法はないでしょうか? #こんな方法ではできないでしょうか? ※携帯向け機能なので、javaScriptが利用できません。 例)  ID=0001&PassWord=1234   ↓↓↓↓  <XMLData> <Login ID="0001" PassWord="1234">  </XMLData> ※ヘッダー部分としては以下の様にしたいのです。  POST /cgi-bin/login HTTP/1.1  Accept: */*  Content-Type: application/x-www-form-urlencoded  :  :  :  Connection: Keep-Alive  Cache-Control: no-cache  <XMLData> <Login ID="0001" PassWord="1234">  </XMLData> 以上、ご教授お願いします。

  • WWW::Mechanizeがプロシキ経由になってしまう

    WWW::Mechanizeを使って診断君にアクセスすると判定結果が「判定:プロクシです proxy判定箇所が 1箇所、疑惑点が 2箇所ありました。」と出てしまうのですが #$mech->proxy('http', $proxy);の部分をコメントにしているのにどうしてでしょうか? 何方か教えてもらえませんか? ___________________ #!/usr/bin/perl use lib "lib"; use LWP::UserAgent; use WWW::Mechanize; $proxy = "http://xxxx.xxxx.jp:80"; $site = "http://www.taruo.net/e/"; my $mech = WWW::Mechanize->new(); #$mech->proxy('http', $proxy); $mech->add_header( Referer => 'http://www.yahoo.co.jp', Proxy-Connection => 'Keep-Alive', Connection => 'Keep-Alive', USER_AGENT => 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)', ACCEPT => 'image/gif,image/x-xbitmap,image/jpeg,image/pjpeg,image/pnp,*/*', ACCEPT-CHARSET => 'iso-8859-1,*,utf-8', ACCEPT_LANGUAGE => 'ja', ACCEPT_ENCODING => 'gzip,deflate', Content-Type => 'application/x-www-form-urlencoded', Content-Length => '100', HOST => 'www.taruo.net', HTTP_CONNECTION => 'Keep-Alive', ); $mech->post("$site"); $html = $mech->content; print "Content-type: text/html;\n\n"; print<<endend; $html endend exit;

    • ベストアンサー
    • Perl
  • 配送業者のAPI側に送るヘッダーについて

    配送業者のAPIにリクエストする場合のヘッダーの書き方で、どこか修正したほうがいいと 思われる個所を指摘していただけますか? ヘッダーは下記のようなものです。 ------------------------------------------------------------------------------- $headers = array( "User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0", //ユーザエージェントの指定 "Authorization: Basic".base64_encode('user:pass'),//ベーシック認証 "Accept: text/plain, */*; q=0.01", "Accept-Language: ja,en-us;q=0.7,en;q=0.3", "Accept-Encoding: gzip, deflate", "Content-Type: application/x-www-form-urlencoded; charset=UTF-8", "X-Requested-With: XMLHttpRequest", "Referer: https://www.fedex.com/fedextrack/?tracknumbers=~&locale=ja_JP&cntry_code=jp", "Content-Length: 512", "Cookie:", //クッキーは無くても別に問題ない。 "Connection: keep-alive", "Pragma: no-cache", "Cache-Control: no-cache" );

    • ベストアンサー
    • PHP
  • モジュールを使ってリクエストヘッダーの表示をさせたい

    宜しくお願いします。 ウェブサーバーにリクエストを送った際、 リクエストヘッダ レスポンスヘッダとあると思うんですけど、 レスポンスヘッダは下記の形で表示できるのですが、 リクエストの際のヘッダ情報(HOST:やReferer:など)を表示させる事ができません。 どなたか、モジュールを使った形でリクエストヘッダを表示させるプログラム記述をご教授願えませんでしょうか。 ※下記は実際にテストを行っているリクエストヘッダとレスポンスヘッダとソースを表示する記述例です。(レスポンスヘッダは正常に表示できているとおもうのですが・・。) #!/usr/bin/perl use HTTP::Request::Common qw(POST GET); use LWP::UserAgent; use HTTP::Cookies; my $ua = LWP::UserAgent->new; my $req = $ua->request(HTTP::Request->new(GET => "http://localhost/")); print "Content-type: text/html\n\n"; print $req3->headers_as_string([$endl]);#これを追加し表示される情報はリファレンスっぽくなってしまうのと、 #リクエストヘッダのHOST:やReferer:UserAgentなどの情報が入ってないので、 #モジュールを利用してリクエストヘッダを表示させてみたいです。 print $req->as_string; リクエストヘッダーのイメージは下記のような情報だと思うのですが、モジュールを使って表示させる事はできないでしょうか どなた様かご教授の程宜しくお願い致します。 HTTP/1.1 Accept: */* Referer: http://okwave.jp/search.php3 Accept-Language: ja User-Agent: Mozilla/4.0 (compatible ; MSIE 6.0; Windows NT 5.0) Host: okwave.jp Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html; charset=Shift_JIS

    • ベストアンサー
    • Perl
  • cakephpでPOST(ajax)データを取得

    Cakephpからajaxでポストされたファイルデータをデータベースに保管したいのですが ポストの中身が取得できなくて困っています。自分なりに調査したのですが 結局パケットをキャプチャしてみても解決しないままです。 以下の二つにさほど違いはないように思えるのですが何が原因でしょうか? 必要な情報があれば補足いたします。 Cakephpの$this->request->dataからポストデータが正常に取得できるリクエスト POST /images/add HTTP/1.1 Host: yahoo.yahoo.yahoo User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: ja,en-US;q=0.7,en;q=0.3 Accept-Encoding: gzip, deflate Referer: http://yahoo.yahoo.yahoo/Administrators/makeTitleData Cookie: CAKEPHP=5d7cd855ad316267673b8a20e5fbcf9c Connection: keep-alive Content-Type: multipart/form-data; boundary=---------------------------199552540520686 Content-Length: 964 -----------------------------199552540520686 Content-Disposition: form-data; name="_method" POST -----------------------------199552540520686 Content-Disposition: form-data; name="data[Image][name]"; filename="" Content-Type: application/octet-stream -----------------------------199552540520686 Content-Disposition: form-data; name="image" -----------------------------199552540520686 Content-Disposition: form-data; name="data[Image][contents]" -----------------------------199552540520686 Content-Disposition: form-data; name="data[Image][moto_filename]" -----------------------------199552540520686 Content-Disposition: form-data; name="data[Image][filetype]" -----------------------------199552540520686 Content-Disposition: form-data; name="data[Image][filesize]" -----------------------------199552540520686 Content-Disposition: form-data; name="btnSave" ...... -----------------------------199552540520686-- Cakephpの$this ->request->dataでポストデータが取得できないリクエスト prの出力は空配列→array()(ajax+FormDataオブジェクトにて生成されたリクエスト) POST /Images/add HTTP/1.1 Host: yahoo.yahoo.yahoo User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0 Accept: */* Accept-Language: ja,en-US;q=0.7,en;q=0.3 Accept-Encoding: gzip, deflate Content-Type: false X-Requested-With: XMLHttpRequest Referer: http://yahoo.yahoo.yahoo/Administrators/makeTitleData Content-Length: 572 Cookie: CAKEPHP=5d7cd855ad316267673b8a20e5fbcf9c Connection: keep-alive Pragma: no-cache Cache-Control: no-cache -----------------------------243202103330754 Content-Disposition: form-data; name="filename" a.txt -----------------------------243202103330754 Content-Disposition: form-data; name="contents" aaa -----------------------------243202103330754 Content-Disposition: form-data; name="moto_filename" b.txt -----------------------------243202103330754 Content-Disposition: form-data; name="filetype" image/jpg -----------------------------243202103330754 Content-Disposition: form-data; name="filesize" 10 -----------------------------243202103330754-- 何がいけないのでしょうか・・。 よろしくお願いいたします。ご回答お待ちしております。

    • 締切済み
    • PHP
  • ホームページビルダー15で表示が崩れる

    ホームページビルダー15を使ってHP作成をしています。 ChromeなどIE以外のブラウザで自サイトを閲覧すると リンクボタンの画像が表示されなかったり >HTTP/1.1 200 OK Date: Tue, 13 Sep 2011 07:29:36 GMT Server: Apache Vary: Host Last-Modified: Tue, 13 Sep 2011 05:58:32 GMT Accept-Ranges: bytes X-Powered-By: ModLayout/5.1 Content-Length: 1650 Keep-Alive: timeout=3, max=59 Connection: Keep-Alive Content-Type: text/html といった文字列が表示されることが頻繁に起きます。 対処方法はないのでしょうか

  • 新 AVG Anti-Virus Free Edition について

    新 AVG Anti-Virus Free Edition について AVG Anti-Virus Free Edition 2011 10.0.1120 にしたが、 その後、ビックローブホームページ上の会員専用ページのところが消えてなぜか英語表示になって 会員専用の場所に以下のようになって入れない (HTTP/1.1 200 OK Date: Thu, 30 Sep 2010 15:06:05 GMT Server: httpd Vary: Accept-Encoding,User-Agent,Cookie Accept-Ranges: bytes Content-Length: 2502 P3P: CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAo IVDo CONo HIS TKLo OUR DKLo SAMo OTRo IND" Pragma: no-cache Cache-Control: no-cache Expires: -1 Keep-Alive: timeout=2, max=150 Connection: Keep-Alive Content-Type: text/html Content-Encoding: gzip) リンクスキャナを無効にしたらちゃんと表示されたがどうも正常に動いていないようです 今は無効にしておいてあるが、どうすればいいかわかる方いますか AVGにこのこと聞いたが無料版は回答はないようなので質問しました ツールバーにBINGを入れているがそれとぶつかっている?

  • php fsockopenの文字化けについて

    PHPプログラミングの初心者です。 現在Yahooファイナンスのページから為替情報を自動で取得するスクリプトを作成しています。 サーバーからの応答は「HTTP/1.1 200 OK」となっているのですが、取得したデータが全て文字化けして表示されます。 mb_convert_encodingを使っても結果は同じでした。 どのようにすれば文字化けを解消できるのでしょうか? 下記がスクリプトの内容です。よろしくお願いいたします。 <?php /* リクエストライン */ $request = "GET / HTTP/1.0\r\n"; $request .= "Accept: */*\r\n"; $request .= "Accept-Language: ja\r\n"; $request .= "User-Agent: PHP-".phpversion()."\r\n"; $request .= "Accept-Encoding: gzip, deflate\r\n"; $request .= "Host: finance.yahoo.co.jp\r\n"; $request .= "Connection: Keep-Alive\r\n"; $request .= "\r\n"; $fp==""; $fp =@fsockopen("finance.yahoo.co.jp", 80); /* 要求データ送信 */ fputs($fp, $request); /* 応答データ受信 */ $response = ""; while (!feof($fp)) { $response.= fgets($fp); } /* 接続を終了 */ fclose($fp); /* ヘッダ部分とボディ部分を分離 */ $DATA = split("\r\n\r\n", $response, 2); /* リクエストヘッダをコメントアウトして出力 */ echo "<!--\n".$request."\n-->\n"; /* レスポンスヘッダをコメントアウトして出力 */ echo "<!--\n".$DATA[0]."\n-->\n"; /* メッセージボディを出力 */ echo $DATA[1]; ?>

    • ベストアンサー
    • PHP
  • 400 Bad Syntaxって何ですか?

    先ほどから見られないページがあって困っています。教えてください。 ----------------- 400 Bad Syntax The request appears to be improperly formatted. Found error in this section of the request: GET /Info/concept.html HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */* ~~~~~~~: ~~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Accept-Language: ja ~~~~~~~~~~~~~~~: ~~~~~ ~~~~~~~ User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322) Host: XXX.XX.co.jp Connection: Keep-Alive と出ているのですが、これはいったいどういう意味なんでしょうか?また、回避方法はどうすればいいのでしょう・・・。