2017-01-11 4 views
0

とPOSTリクエストを作成することはできません**************私は比較的午前*******************はAFNetworking

編集

私はNSLocalizedDescription =要求が失敗した取得しています:許可されないコンテンツタイプ:text/htmlで、NSErrorFailingURLKey = https://xxxxxx-xxxxxx/xxxx/xxxx}}、com.alamofire.serializationのiOSに新しいと私は、次のコードを使用してPOSTリクエストを作りたいです.response.error.response = {URL:https://xxxxxx/xxx/xxxx/xxxxxs}

 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; 
     AFJSONRequestSerializer *requestSerializer = [AFJSONRequestSerializer serializer]; 

     [requestSerializer setValue:token1 forHTTPHeaderField:@"Authorization"]; 
     [requestSerializer setValue:@"PP" forHTTPHeaderField:@"x-service-code"]; 
     [requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 
     [requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
     [manager setRequestSerializer:requestSerializer]; 


     NSDictionary *params = [[NSDictionary alloc] initWithObjectsAndKeys: 
           token.tokenId, @"payment_method_nonce", 
           details.city, @"city", 
           details.address1, @"address1", 
           details.state, @"state", 
           details.zipcode, @"zip", 
           nil]; 



     [manager POST:url parameters:params 

      success:^(NSURLSessionDataTask *task, id responseObject) 
     { 
      NSLog(@"SUCCEEDED"); 
     } 
      failure:^(NSURLSessionDataTask *task, NSError *error) 
     { 
      loadingOverlay.hidden = YES; 
      NSLog(@"FAILED %@",error); 


     }]; 

私は問題が何であるかを知りました。paramsをraw JSONとして送信する必要があります。これをどのように達成するのですか?

私はすなわちのparamsは、そのままの形式で行ってみたい

{ "payment_method_nonce": "tok_xxxxxxxx"}:

[paymentDetails setObject:token.tokenId forKey:@"payment_method_nonce"]; 
      [paymentDetails setObject:details.address1 forKey:@"address1"]; 
      [paymentDetails setObject:details.city forKey:@"city"]; 
      [paymentDetails setObject:details.state forKey:@"state"]; 
      [paymentDetails setObject:details.zipcode forKey:@"zip"]; 

をしてAFHTTPRequestOperationManagerを代わりに使用する

+0

「容認できないcontent-type:text/html」。受け入れられたcontent-typeに 'text \ html'を追加してみてください。 – Larme

+1

は機能しませんでした+私たちのサーバーはその形式を受け入れません。私は問題がヘッダではなくパラメータ本体であることを確認しました。生のjsonとして送信する必要があります。 paramsをRaw JSONに変換するにはどうすればよいですか? – Ackman

+0

住所やトークンなどの投稿要求をJSON形式の本文として送信するにはどうすればよいですか? – Ackman

答えて

0

は、私が代わりにNSMutableDictionaryを使用し、それを解決しましたAFHTTPSessionManager

+0

解決策は 'AFHTTPRequestOperationManager'のようです。 'NSMutableDictionary'ではありません。 'NSMutableDictionary'と' NSDictionary'は、要求のために同じ 'params'を返さなければなりません。 – keithbhunter