[解決済み] POSTデータはURLエンコードした方が良いですか?
質問
私は外部APIにデータをPOSTしています(関連性があればPHPを使用)。
渡すPOST変数をURLエンコードする必要がありますか?
それとも、GETデータだけをURLエンコードすればよいのですか?
UPDATE: これは私のPHPです。
$fields = array(
'mediaupload'=>$file_field,
'username'=>urlencode($_POST["username"]),
'password'=>urlencode($_POST["password"]),
'latitude'=>urlencode($_POST["latitude"]),
'longitude'=>urlencode($_POST["longitude"]),
'datetime'=>urlencode($_POST["datetime"]),
'category'=>urlencode($_POST["category"]),
'metacategory'=>urlencode($_POST["metacategory"]),
'caption'=>($_POST["description"])
);
$fields_string = http_build_query($fields);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
どのように解決するのですか?
一般的な回答
あなたの質問に対する一般的な答えは、「場合による」ということです。 そして、HTTPヘッダで"Content-Type"が何であるかを指定することによって決定することになります。
application/x-www-form-urlencoded" の値は、POST 本文が GET パラメータ文字列と同様に URL エンコードされる必要があることを意味します。 multipart/form-data" の値は、コンテンツの区切り文字を使用し、コンテンツを URL でエンコードしないことを意味します。
この回答には、より詳細な説明があります。 をご覧ください。
具体的な回答
使用している PHP ライブラリ (CURL) に固有の回答は、次のとおりです。 ここでドキュメントを読んでください .
関連情報はこちらです。
<ブロッククオートCURLOPT_POST
TRUE を指定すると、通常の HTTP POST を行います。 このPOSTは通常のapplication/x-www-form-urlencodedの種類で、HTMLフォームで最もよく使われるものです。
curlopt_postfields
HTTP "POST"操作でポストする完全なデータです。ファイルを投稿するには、ファイル名の前に @ を付け、フルパスを使用します。ファイル名の後に ';type=mimetype' という形式でファイルタイプを指定することもできます。このパラメータは、'para1=val1¶2=val2&...'のようなURLエンコードされた文字列として渡すか、フィールド名をキー、フィールドデータを値とする配列として渡すことができます。value が配列の場合、Content-Type ヘッダは multipart/form-data に設定されます。PHP 5.2.0 以降、このオプションに @ というプレフィックスをつけてファイルを渡す場合、 value は配列でなければなりません。
関連
-
[解決済み] ブラウザによって異なるURLの最大長とは?
-
[解決済み] URI、URL、URNの違いは何ですか?
-
[解決済み] JavaScriptでURLをエンコードする?
-
[解決済み] フォーム送信のようなJavaScriptのポストリクエスト
-
[解決済み] HTTP POSTリクエストでは、どのようにパラメータが送信されるのですか?
-
[解決済み] node.jsでHTTP POSTリクエストはどのように行われるのですか?
-
[解決済み] POSTとPUT HTTP REQUESTの違いは何ですか?
-
[解決済み] Node.jsでPOSTデータを処理する方法は?
-
[解決済み】HTTPのPOSTとPUTの違いは何ですか?
-
[解決済み] application/x-www-form-urlencoded or multipart/form-data?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] IISファイルのダウンロードがハングアップ/タイムアウトする - sc-win32-status = 64
-
[解決済み] Google ChromeでSPDYを無効にする方法
-
[解決済み] OPTIONSリクエストを送信する理由と、それを無効にする方法を教えてください。
-
[解決済み] Firefoxで突然「Blocked loading mixed active content」問題が発生したのはなぜですか?
-
[解決済み] application/x-www-form-urlencoded or multipart/form-data?
-
[解決済み】AngularでHTTPリクエストにURL引数(クエリ文字列)を渡すには?
-
[解決済み】HTTP 1.0 vs 1.1
-
[解決済み】no-cacheとmust-revalidateの違いについて
-
[解決済み】Accept* HTTPヘッダのq=0.5とは何ですか?
-
[解決済み] REST DELETEは本当にべき乗なのか?