0

私はJSON初心者であり、JSONペイロードリクエストをシミュレートする方法に関する資料が見つかりません。

私の最終的な目標は、これらの要求/応答を処理するObjective-ciOSアプリを構築できるようにすることです。私はASIHttprequestフレームワークとそれが回避する要求/応答メカニズムを知っています。

ただし、現在、さまざまなjsonペイロードを期待し、json形式で応答を提供するWebサービスAPIがあります。次に例を示します。

URLの例:

https://mywebServiceURL/api/ApiKey/user/create

The ContentType header = “application/json”.

ペイロード:PUTペイロードはJSONディクショナリであり、次のキーと値のペアが含まれています。

email
screenName
User’s screen name. 
password
passwordConfirm    
phoneNumber (optional)
User’s phone number (optional)
picture A png file (64x64), encoded as a Base64 string (optional)

今私の質問:

1-これを通常どおりにシミュレートするにはどうすればよいですか(テストのために、iOSの外部で)?グーグルを検索しましたが、必要なものが正確に見つかりませんでした。curl.exeを取得しましたが、メソッドが許可されていないなど、ブラウザが提供するものと同じです。しかし、それだけが必要なわけではありません。PUT、GET、POSTなどで実際にどのように機能するかを知る前に、さまざまなリクエストで遊んだり、値を指定したり、APIをしばらく使って乗車したりしたいと思います。

2-そのようなものをiOSに組み込むための最良の方法は何ですか?プロジェクトには、Webリクエスト用のASIHttpとJSON処理用のJSONKitがすでに含まれています。

私はこの種のことをしましたが、xml応答を使用して、リクエストを取得します。JSON私は初めて働いています。このような例へのポインタだけが大きな助けになります。

4

2 に答える 2

1
  1. 高度なRESTクライアントやRESTコンソールなど、REST呼び出しをシミュレートするために使用できるChrome拡張機能がいくつかあります。これらはブラウザにすばやく簡単にインストールでき、リクエストを作成してレスポンスを表示できます。

  2. オープンソースのiOSネットワークライブラリAFNetworkingを使用することをお勧めします。このライブラリには、REST呼び出しとJSON解析のサポートが組み込まれています。起動と実行は非常に簡単で、より高度な機能が必要な場合は非常に強力です。

お役に立てれば。

于 2013-02-06T10:15:51.630 に答える
1

最近のアプリの1つで同様の種類のものを使用したので、JsutはAndyの提案を追加します。

  1. REST呼び出しのテストにChrome拡張機能のポスターを使用しました。
  2. 非同期クエリの処理にASIHttpRequestを使用しました。

サンプルコードスニペット

    //dictionaryData contains the login user details
    NSData* jsonData = [NSJSONSerialization dataWithJSONObject:dictionaryData  options:kNilOptions error:nil]; 
    NSString *jsonString = [[[NSString alloc] initWithData:jsonData                  encoding:NSUTF8StringEncoding]autorelease];                                         
    //Handling ASI requests
    ASIHTTPRequest* request = [ASIHTTPRequest requestWithURL:uri];
    [request addRequestHeader:@"Content-Type" value:@"application/json"];
    [request addRequestHeader:@"Accept" value:@"application/json"];
    [request appendPostData:[jsonData dataUsingEncoding:NSUTF8StringEncoding]];
    [request setRequestMethod:@"POST"];
    [ASIHTTPRequest setDefaultTimeOutSeconds:30];
    request.delegate = self;
    [request startAsynchronous];
于 2013-02-06T10:35:55.467 に答える