如何发送 POST XML 从 iOS 应用程序

2025-05-01 02:30:29
推荐回答(1个)
回答1:

所以我一直跑在发送 XML 与邮政从 iPhone 应用程序-到目前为止,运气不好的事搜索 web 一遍遍无 !
我在我的应用程序 KissXML,我发现非常简单和有用当它来到出去 XML 响应-但相当对面将 XML 发送到服务器时使用的......这里是我的连接和接收 XML 的方法。我试着把 NSString 包含只需我的 XML 请求进入身体的 POST 请求,但它不会工作按计划进行。
-(void)prepareTransaction{
NSLog(@"FXSecondVC: preparing transaction...");
NSString *login = [[NSUserDefaults standardUserDefaults] stringForKey:@"kUsername"];
NSString *password = [[NSUserDefaults standardUserDefaults] stringForKey:@"kPassword"];
NSString *host = [[NSUserDefaults standardUserDefaults] stringForKey:@"kURLServer"];

NSURL *url = [[NSURL alloc] initWithString:host];

AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
[httpClient setAuthorizationHeaderWithUsername:login password:password];
[httpClient registerHTTPOperationClass:[AFKissXMLRequestOperation class]];

NSString *xmlString = @""
"12678967.543233"
""
""
"String content
"
""
"String content
"
"
"
"true"
"String content"
"1999-05-31T11:20:00"
"true"
"
";

NSMutableURLRequest *request = [httpClient requestWithMethod:@"POST" path:kServerRequestURL parameters:nil];
[request setHTTPBody:[xmlString dataUsingEncoding:NSUTF8StringEncoding]];

AFKissXMLRequestOperation *operation = [AFKissXMLRequestOperation XMLDocumentRequestOperationWithRequest:request success:^(NSURLRequest *req, NSHTTPURLResponse *resp, DDXMLDocument *XMLDocument){
NSLog(@"[SUCCESS]: XMLDocument: %@", XMLDocument);
}failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, DDXMLDocument *XMLDocument) {
NSLog(@"error parsing: %@", [error localizedDescription]);
}];
[operation start];
}
这是什么 response :
2012-11-21 19:40:09.884 FXApp[19662:707] FXSecondVC: preparing transaction...
2012-11-21 19:40:10.011 FXApp[19662:707] error parsing: Expected status code in (200-299), got 400
我漏掉了什么在这里吗?我想要使用 KissXML,因为它最简单的方式 (至少我所认识的),使用已经准备在成功的响应,但如果解决方案需要更改框架中的 XML 文档-不要犹豫。优先事项是让它工作。我进死胡同 — — 这让我抓狂,尤其是它是很紧迫的问题。
解决方法 1:
解决的谜:
看来都做了,xml-我并不是设置内容类型。找到解决办法在这里
在这里你转到:
[request setValue:@"application/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];