0

まず、投稿リクエストの作成方法を調べ、作成方法に関する複数のスレッドとドキュメントを読みましたが、データが機能していないようです。呼び出し callname に作成したい x と html という 2 つのフィールドがあります。これの GET 形式は www.someserver.com/callname?x=something&y=something です。これまでの POST コードは次のようになります。

NSString *baseURLString = @"http://www.someserver.com/callname"
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[[NSURL URLWithString:baseURLString] standardizedURL]];
NSString *fields = [NSString stringWIthFormat:@"x=%@&html=%@",x,htmlSource];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/x-www-form-urlencoded; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:[NSData dataWithBytes:[fields UTF8String] length:strlen([fields UTF8String])]];

NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];

そのように実装された NSURLConnection デリゲート メソッド

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
    NSLog(@"Data Received");
}

-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{ 
    NSLog(@"Error: %@" , error);
}

-(void)connectionDidFinishLoading:(NSURLConnection *)connection{
    NSLog(@"Connection Finished");
}

私は何か見落としてますか?私のコードは、エンコーディングの選択を除けば、私が見つけたほとんどの例とほとんど同じに見えます。y の値として html ソース コードを渡すことは重要ですか? ヒントやヒントをいただければ幸いです。私は iOS と HTML の処理全般に非常に慣れていないため、この件に関する知識が不足していることをお詫びします。御時間ありがとうございます!

4

5 に答える 5

0

フォームの URL エンコードが正しくないと思います。解決策は次のとおりだと思います

[serviceRequest setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];

値を UTF-8 でエンコードする場合は、次のように事前に行う必要があります。

NSString *postLength = [NSString stringWithFormat:@"%d", [_xmlDoc length]]; //Calculating the Content Length
    NSData *postData = [_xmlDoc dataUsingEncoding:NSUTF8StringEncoding]; // preparing XML to be sent in POST

POST データの文字列を事前にエンコードしていることに注意してください。

これが役立つことを願っています!!

于 2014-03-10T00:05:36.240 に答える
0

潜在的な問題の 1 つは、パラメーターを適切にパーセント エンコードしていないことです。

コードのように content type でパラメーターを使用する場合は、パラメーターを (エンコードされていない)キーと値のペアとして作成し、オブジェクトを作成して、ここの回答で説明されている次のヘルパー メソッドを使用するapplication/x-www-form-urlencodedことをお勧めします( How to send multiple parameterts to PHP server in HTTP post ) を使用して、本文に追加できる適切にエンコードされたパラメーター文字列を作成します。NSStringNSDictionary

于 2014-02-12T22:06:36.197 に答える
-1

あなたのコードは私のために働きます。走ることを覚えていました[connection start];か?

于 2014-02-12T20:33:00.010 に答える