2016-11-15 2 views
0

リクエストにHTTPBodyを渡しています。しかし、それは適切な応答を得ることができません。以下iOSのNSMutableURLRequestにHTTPBodyを追加するには?

は私のコードです:

NSURL *url = [NSURL URLWithString:@"https://sample.ios.com/l1/voucher"]; 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 

[request setHTTPMethod:@"POST"]; 

[request setValue:@"text/html; charset=UTF-8" forHTTPHeaderField:@"Content-Type"]; 

//Now pass your own parameter -------- 

[request setValue:@"g064a4b5aa95556a7b0b4435d94c317840e9b456" forHTTPHeaderField:@"X-Authorization"]; 
[request setValue:@"123651236512" forHTTPHeaderField:@"uuid"]; 
[request setValue:@"myIphone" forHTTPHeaderField:@"devicename"]; 


NSString *myRequestString [email protected]"voucher=JHAHSDGH-80"; 
NSLog(@"%@",myRequestString); 
NSData *myRequestData = [ NSData dataWithBytes: [ myRequestString UTF8String ] length: [ myRequestString length ] ]; 
[ request setHTTPBody: myRequestData ]; 

NSURLResponse *response; 
NSError *err; 
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err]; 
NSString *content = [NSString stringWithUTF8String:[responseData bytes]]; 
NSLog(@"content : %@",content); 

出力は以下のように来ている:

content : {"voucher":["The voucher field is required."]} 

は、どのように私はHTTPBodyを設定することができますか?

私を助けてください。

+0

ur URLとParamsを表示できますか? ' –

+0

devicename、uuidはこのパラメータですか? – KKRocks

+0

元のURL私は表示できませんが、郵便配達員に取り組んでいますが、それほどコードがありません –

答えて

2

HTTPBodyは、NSJSONSerializationクラスの型であるNSDataとして設定されます。

あなたの解決策はNSArrayを作成し、必要なWebサービスとしてNSDictionaryクラスに埋め込むことです。データにJSONを変換し、それがのNSDataクラスOBJを返します

その後[: 'あなたの辞書' オプション:NSJSONWritingPrettyPrintedエラー&エラーNSJSONSerialization dataWithJSONObject]を使用します。これはあなたを助ける

希望:

次に、あなたは [データ要求setHTTPBody]、としてあなたの要求に追加します。あなたの質問が間違っているかどうか教えてください。

+0

ここでいくつかのコードを共有できますか? –

+0

@SRNayak:あなたのHTTPBodyは何を供給する必要がありますか? –

+0

NSArray * name = @ [a、b、c] NSDictionary * dictionary = [[NSDictionary alloc] initWithObjects:@ [name、@ "hello"、] forKeys:@ [@ "firstName"、@ "message"] ]; たNSData *データ= [NSJSONSerialization dataWithJSONObject:辞書 オプション:NSJSONWritingPrettyPrintedエラー:nilを] [requestToPostDataField setHTTPBody:データ]; は、この方法を試してみてください –

関連する問題