それで、私はiPhoneアプリからPOSTを使用してXMLを送信することについて何かを探して、Webを何度も検索しました。これまでのところ、運がありません。
私は自分のアプリKissXMLで使用しています。これは、応答からXMLを取得する場合は非常に簡単で便利ですが、サーバーにXMLを送信する場合はまったく逆です...XMLを接続および受信する方法は次のとおりです。XMLリクエストを含むNSStringを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 = @"<RootEl xmlns=\"http://some.url/goes/here\">"
"<Element1>12678967.543233</Element1>"
"<Element2>"
"<string xmlns=\"bla.bla/url\">"
"String content</string>"
"<string xmlns=\"bla.bla/url\">"
"String content</string>"
"</Element2>"
"<Element3>true</Element3>"
"<Element4>String content</Element4>"
"<Element5>1999-05-31T11:20:00</Element5>"
"<Element6>true</Element6>"
"</RootEl>";
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ドキュメントを使用する最も簡単な方法(少なくとも私には知られている)ですが、ソリューションでフレームワークの変更が必要な場合は、ためらわないでください。優先順位はそれを機能させることです。私は行き止まりになりました-これは私を夢中にさせています、特にそれは本当に緊急の問題です。