2016-11-15 1 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

URL과 매개 변수를 표시 할 수 있습니까? ' –

+0

devicename, uuid는이 매개 변수입니까? – KKRocks

+0

원래 URL 내가 보여줄 수는 없지만 우편 배달부에서 일하지만 허위 코딩은받지 못합니다 –

답변

2

HTTPBody는 NSData로 설정됩니다. NSB는 NSJSONSerialization 클래스 유형입니다.

당신의 솔루션은 NSArray를 만들고 NSDictionary 클래스에 임베드해야합니다.데이터에 JSON 변환하려면 그리고 그것은을 NSData 클래스 OBJ를 반환합니다 [: '당신의 사전'옵션 : NSJSONWritingPrettyPrinted 오류 & 오류가 NSJSONSerialization dataWithJSONObject]

그런 를 사용합니다. 이 당신을 도울 것입니다

희망 :

그런 다음 당신은 [데이터 요청 setHTTPBody]와 같은 요청에 추가 할 수 있습니다. 내가 당신의 질문을 잘못 이해하면 알려주세요.

+0

여기에 코드 일부를 공유 할 수 있습니까? –

+0

@SRNayak : 귀하의 HTTPBody는 무엇을 먹어야합니까? –

+0

@ [a, b, c] NSDictionary * dictionary [[NSDictionary alloc] initWithObjects : @ [name, @ "hello"] forKeys : @ [@ "firstName", @ "message"] ] 을 NSData * 데이터 = NSJSONSerialization dataWithJSONObject : 사전 선택해 NSJSONWritingPrettyPrinted 오류 : 닐] [requestToPostDataField setHTTPBody는 : 데이터] 이 방법을 시도 –

관련 문제