***我對HTTP網絡很陌生。HTTP請求適用於curl,但不適用於iOS或Postman
基本上這樣工作: curl -k -L -v -X POST -header「Content-Type:application/json」--header「Accept:application/json」--header'Authorization:OAuth someAccessToken '--header「Force-Instance-Url:websiteurl」--header「Force-User-Id:someUserId」--data「{}」「websiteurl」
但是,我似乎無法取得任何成功在Postman(Chrome的HTTP測試插件)或我在iOS中製作的程序中獲得響應。結果始終爲HTTP狀態500 - java.io.EOFException:由於輸入結束而無內容映射到Object。
我一直非常小心,以確保網址和標題完全相同,但沒有運氣。 在我的iOS程序中,我有一個http請求,可以成功檢索訪問令牌,instance_url和force_user_id。我使用這些字段做出上面張貼的請求,但答覆是錯誤500.
由於它不適用於郵遞員,或者我不確定是否有助於發佈我的代碼,但我會反正:
NSURL *loginURL = [NSURL URLWithString:@"websiteurl"];
NSMutableURLRequest *request=[[NSMutableURLRequest alloc] initWithURL:loginURL];
[request setHTTPMethod:@"POST"];
NSString *instance_url = [self.loginDictionary objectForKey:@"instance_url"];
NSString *authorization = [NSString stringWithFormat:@"%@%@", @"OAuth ",[self.loginDictionary objectForKey:@"access_token"]];
NSString *instance_id = [self.loginDictionary objectForKey:@"id"];
NSRange range = [instance_id rangeOfString:@"/" options:NSBackwardsSearch];
if (range.location != NSNotFound)
{
instance_id = [instance_id substringFromIndex:range.location + 1];
}
[request setValue:@"application/json" forHTTPHeaderField: @"Content-Type"];
[request setValue:@"application/json" forHTTPHeaderField: @"Accept"];
[request setValue:authorization forHTTPHeaderField: @"Authorization"];
[request setValue:instance_url forHTTPHeaderField: @"Force-Instance-Url"];
[request setValue:instance_id forHTTPHeaderField: @"Force-User-Id"];
NSLog(@"\n\n%@", [request allHTTPHeaderFields]);
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON)
{
self.loginDictionary = (NSDictionary *) JSON;
NSLog(@"*************************************************************************");
NSLog(@"*************************************************************************");
NSLog(@"FIREWORKS");
}
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON)
{
NSLog(@"Request Failure Because %@",[error userInfo]);
}];
[operation start];
以下是請求標題的日誌打印。
{
Accept = "application/json";
Authorization = "OAuth accessTokenValue";
"Content-Type" = "application/json";
"Force-Instance-Url" = "websiteurl";
"Force-User-Id" = someUserId;
}
關於最後一點,這似乎是一個線索,我的唯一的事情是,在curl命令的權威性標題是單引號,但其餘的都沒有......我不知道如果這很重要或不重要。 感謝您的閱讀和幫助。
嗯我試着添加這兩個頭,但我仍然收到相同的錯誤。不過謝謝。 – Sethypie
你在哪裏發送代碼中的空對象({})?該錯誤說:'沒有內容映射到對象由於輸入結束。' – jdb
對不起,我不明白這個問題。什麼是空對象? – Sethypie