*

アプリからFormDataを送信する

公開日: : iOS

HTMLのformタグを使うとHTTPリクエストにkey=valueの形式で任意のデータを付加して送信することができます。
今回は、これと同じことをプログラムから実行する方法についてです。

POSTとGET

HTTPリクエストはGETとPOSTの2種類があります。
FormDataの送信はどちらでも可能です。
一般的に条件やキーワードを指定してデータを取得する場合にはGETを使い、メッセージや画像などのデータを投稿する場合にPOSTを使うようです。
GETはURLにデータ(Query String Parameters)を付加してして送信するのでブックマークして使うことも可能です。
POSTで行なう場合はHTTP-BODYにForm Dataを含めます。

次のデータを送信する場合のHTTPRequestのサンプルです。

  • key1 = value1
  • key2 = value2

まずGETの場合

Request URL:http://your.domain/your.pl?key1=value1&key2=value2
//RequestHeader
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:ja,en;q=0.8,en-US;q=0.6
Connection:keep-alive
....
User-Agent:...

POSTの場合

Request URL:http://your.domain/your.pl
//Request Header
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:ja,en;q=0.8,en-US;q=0.6
Cache-Control:max-age=0
Connection:keep-alive
Content-Length:23
Content-Type:application/x-www-form-urlencoded
...

key1=value1&key2=value2

サンプルコード

上記の例をアプリから送信するサンプルコードです。

ここで注意が必要なのはkeyやvalueに’&’や’=’、’?’などの文字が含まれていると、
区切り文字と勘違いしてしまい意図した内容が送信できなくなります。
そこで送信する前にこれらの文字をパーセントエンコーディングで変換しておきます。

パーセントエンコーディング(URLエンコーディング)

パーセントエンコーディングの詳細は
こちら(wiki)

変換するコードはこんな感じです。

Sola

Sponsored Link

関連記事

iOS7向けアプリアイコンを一括変換

iOSがiOS7にバージョンアップされ、アプリに必要なアイコン画像のサイズがさらに増えました(

記事を読む

icloud.jpeg

アプリからiCloudを使うための準備

iOSではアプリがiCloud上にデータを保存するための仕組みが提供されている。 iCloudは

記事を読む

ace.png

イーモンv2.3申請

やっとv2.2がリリースされ、本日v2.3をAppleに申請しました。 v2.3の主

記事を読む

sample.png

cocos2dxでhttp通信のprogressを表示する

cocos2d-xでは、ダウンロードの進捗を取得するインターフェイスが用意されていないような

記事を読む

no image

Renderer::visitRenderQueueで落ちる場合

Cocos2d-x v3にしてから描画で突然落ちる場合があり、 原因をたどっていくと、Re

記事を読む

5017d1a195d95dfed9f60e9fd5d82c13.png

苦手な英語の発音を真面目に考えてみた

最近、英語の発音に真面目に取り組んでます。 これまで読み書きが中心で、リスニングやスピーキン

記事を読む

teach_s.png

[eMon] English Monstersレビュー申請中

先日、新しいiOSアプリを審査に出しました。 English Monsters(略してeM

記事を読む

4300d3f14f7f754c5b2cd5b720efb39f.png

cocos2dxでマルチスレッド

cocos2dxでマルチスレッドをいじったときのメモ あらかじめautoreleaseに

記事を読む

no image

UIAlertのTextFieldでキーボードが表示されない(iOS7)

TextField付きのUIAlertViewでたまにキーボードが表示されないことがあり、 ながら

記事を読む

cocos2dx_portrait.png

Macでcocos2dxをiOSとAndroid向けにビルド

前回Androidの開発環境をセットアップでAndroidの開発環境が準備をしました。 今

記事を読む

Sponsored Link

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Sponsored Link

  • 発音辞書イーモン
  • English Monsters
  • sLog(時間管理アプリ)
  • 生粋のC++プログラマーです。 最近は、Objective-Cやxcode、cocos2d-xなどを学びながらiPhoneアプリを開発しています。

Google+ Google
PAGE TOP ↑