2
我在Objective C中實現了PUT請求。當使用Postman從iOS/Objective C執行外部請求時,請求成功,但在Objective C中調用時返回錯誤(狀態碼500)。據我所知,該實現反映了Postman中調用的方式。這裏是我嘗試使用目標C鏡像呼叫:PUT請求狀態碼500?
,這裏是我的目標C實現:
- (void)callUnregisterForPushNotifications:(NSString *)accessToken
pushToken:(NSString *)pushToken
completionBlock:(void (^)(NSMutableArray *resultsArray))completion{
NSLog(@"UNREGISTER FOR PUSH CALLED!");
NSLog(@"PUSH TOKEN %@", pushToken);
NSString *appendUrl = @"alerts/unregisterpush/";
NSLog(@"APPEND URL %@",appendUrl);
NSURL *unregisterUrl = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@", BaseURLString, appendUrl]];
NSLog(@"UNREGISTER URL: %@",unregisterUrl);
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:unregisterUrl
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:30.0];
[request setHTTPMethod:@"PUT"];
NSString *appendToken = [NSString stringWithFormat:@"Bearer %@", accessToken];
NSLog(@"TOKEN: %@",appendToken);
[request addValue:appendToken forHTTPHeaderField:@"Authorization"];
NSString *postString = [NSString stringWithFormat:@"Guid=%@",pushToken];
NSLog(@"POST STRING: %@",postString);
[request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];
NSLog(@"REQUEST %@",request);
[NSURLConnection sendAsynchronousRequest:request
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
NSLog(@"UNREGISTER PUSH NOTIFICATIONS RESPONSE: %@", response);
NSLog(@"UNREGISTER PUSH NOTIFICATIONS ERROR: %@", error);
NSLog(@"UNREGISTER PUSH NOTIFICATIONS DATA: %@", data);
NSData *_data = data;// ... whatever
NSMutableString *_string = [NSMutableString stringWithString:@""];
for (int i = 0; i < _data.length; i++) {
unsigned char _byte;
[_data getBytes:&_byte range:NSMakeRange(i, 1)];
if (_byte >= 32 && _byte < 127) {
[_string appendFormat:@"%c", _byte];
} else {
[_string appendFormat:@"[%d]", _byte];
}
}
NSLog(@"UNREGISTER PUSH RESPONSE: %@", _string);
id obj= [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
if (!obj) {
//NSLog(@"REGISTER PUSH NOTIFICATIONS ERROR: %@", error);
} else {
//NSLog(@"REGISTER PUSH NOTIFICATIONS DATA: %@", obj);
if(completion) {
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
completion((NSMutableArray*)obj);
}
//self.accessToken = [obj valueForKey:@"access_token"];
//NSLog(@"ACCESS TOKEN: %@",self.accessToken);
}
}];
}
任何輸入/幫助將不勝感謝,提前致謝!
500是 「內部服務器錯誤」。看看服務器日誌文件,你會知道什麼是錯誤的 – Jens
我得到了以下錯誤:「處理HTTP請求導致異常。請參閱此異常的'響應'屬性返回的HTTP響應的詳細信息。 「 – arcade16
然後在查看我回復的響應後,它會顯示「{」Code「:null,」Message「:」請聯繫服務器管理員!「}」 – arcade16