Tôi đang sử dụng AFNetworking để thực hiện yêu cầu web trên API VolunteerMatch. Khi tôi thực hiện yêu cầu tôi nhận được 200 mã, tuy nhiên tôi không nhận được phản hồi. Đây là cách yêu cầu VolunteerMatch điển hình trông giống như:Mục tiêu API tình nguyện viên C
GET /api/call?action=helloWorld&query=... HTTP/1.1
Host: www.volunteermatch.org
Accept-Charset: UTF-8
Content-Type: application/json
Authorization: WSSE profile="UsernameToken"
X-WSSE: UsernameToken Username="acme", PasswordDigest="quR/EWLAV4xLf9Zqyw4pDmfV9OY=",
Nonce="d36e316282959a9ed4c89851497a717f", Created="2003-12-15T14:43:07-0700"
Here là tài liệu mở rộng.
Đây là mã của tôi mà tôi đang sử dụng để làm yêu cầu của tôi:
// Create parameters
NSDictionary* param = @{
@"action":@"helloWorld",
@"query":@"{\"name\":\"john\"}"
};
// Create Manager
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
// Add Headers
[manager.requestSerializer setValue:@"WWSE profile=\"UsernameToken\"" forHTTPHeaderField:@"Authorization"];
[manager.requestSerializer setValue:[CocoaWSSE headerWithUsername:@"XXXXX" password:@"XXXXXXXXXXX"] forHTTPHeaderField:@"X-WSSE"];
// Perform Request
[manager GET:@"http://www.volunteermatch.org/api/call" parameters:param success:^(AFHTTPRequestOperation * _Nonnull operation, id _Nonnull responseObject) {
NSLog(@"HTTP Request URL: %@", [operation.request URL]);
NSLog(@"HTTP Response Status Code: %ld", [operation.response statusCode]);
NSLog(@"HTTP Response Body: %@", responseObject);
} failure:^(AFHTTPRequestOperation * _Nullable operation, NSError * _Nonnull error) {
NSLog(@"HTTP Request failed: %@", error);
}];
Dưới đây là câu trả lời tôi nhận được:
2015-11-17 16:53:36.476 XXXXXX[85280:5969811] HTTP Response Status Code: 200
2015-11-17 16:53:36.476 XXXXXX[85280:5969811] HTTP Response Body: (null)
Có bạn đã cố đưa ra yêu cầu giống hệt bên ngoài ứng dụng? Hãy thử sử dụng công cụ bên ngoài (ví dụ: https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en) để kiểm tra xem cơ thể được mong đợi có thực sự chứa trong phản hồi hay không. – kajot