저는 iOS에서 새로 생겼습니다.POST 요청에 잘못된 매개 변수가 있습니다.
를 걸이 키 - 값 매개 변수 요청 :
NSString* params = @"sid=d2a8b790364944ef870ed94c1e4fdea3 & phone=+380503424248";
NSURL* url = [NSURL URLWithString:@"http://gps.privatbank.ua/auth/check"];
[request setURL:url];
request.HTTPMethod = @"POST";
request.HTTPBody = [params dataUsingEncoding:NSUTF8StringEncoding];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
NSURLResponse *response;
NSError *error;
NSData *jsonData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
NSDictionary *results = jsonData ? [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers|NSJSONReadingMutableLeaves error:&error] : nil;
NSString *result = [results valueForKey:@"result"];
if([result isEqualToString:@"error"]){
authorizationViewController = [AuthorizationViewController new];
[authorizationViewController openEnterPhone:self];
}
그러나 서버는 항상 응답에게 { "결과": "오류"} 반환 내가이 데이터 던져 우체부 통과
- 반환을 "성공 "
같은 요청하지만, 안드로이드 응용 프로그램에서 보이는 같은 :
,536,HttpPost postMethod = new HttpPost("http://gps.privatbank.ua/auth/check");
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("sid", PreferenceController.getSsid(context)));
nameValuePairs.add(new BasicNameValuePair("phone", PreferenceManager.getDefaultSharedPreferences(context).getString("phone_number","")));
postMethod.setEntity(new UrlEncodedFormEntity(nameValuePairs));
ResponseHandler<String> res = new BasicResponseHandler();
String response = getInstance().execute(postMethod, res);
... "성공"을 반환합니다.
내가 놓친 매개 변수는 무엇입니까?
UPD : 문제가 어디 있는지 이해
. 우편 배달부에서 '+'기호 (전화 번호)를 '% 2B'(으)로 변환하지만 POST 요청은이 작업을 수행하지 않습니다. 이 문제를 해결하려면 어떤 매개 변수를 설정해야합니까?
'jsonData'를 생성 할 때'NSError'를 할당하고 왜 먼저 실패하는지 확인하십시오. – Pancho