0

この投稿iOS: how to perform a HTTP POST request?の指示に従おうとしました。残念ながら、サーバーは応答しますが、データを提供しません。

はエラーなしconnection didReceiveResponseで呼び出されconnectionDidFinishLoadingます。

私は何か間違ったことをしていますか?このサービスをHurl.itでテストしたところ、問題なく動作しました。

requestUrlString= 通常の URL、

postString= "appId=1&last_update=0" のようなもの

responseData = [[NSMutableData alloc] initWithLength:0];

NSURL *baseURL = [NSURL URLWithString:[requestUrlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:baseURL];
[request setHTTPMethod:@"POST"];
[request setValue:[NSString stringWithFormat:@"%d",[postString length]] forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];

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


- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    [responseData setLength:0];
    NSLog(@"Connection didReceiveResponse");
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    [responseData appendData:data];
    NSLog(@"Connection didReceiveData");
}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
    NSLog(@"Connection Error: %@", [error description]);

    [[[UIAlertView alloc] initWithTitle:@"Error"
                                 message:[error description]
                                delegate:nil
                       cancelButtonTitle:@"OK"
                       otherButtonTitles:nil] show];
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    NSLog(@"Connection didFinishLoading");
    NSLog(@"data %@", [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]);
}

ここで同じものを取得した ASIHTTP を参照しないでください。

//編集: 私の問題でお手数をおかけして申し訳ありませんが、修正しました. 問題はエンコーディングタイプでした。

4

1 に答える 1

0

Webサービスは応答本文を生成しますか?または、応答ヘッダーを生成するだけですか?応答本文がない場合、iOSに表示する応答はありません。

また、「Accept」ヘッダーが必要だと思います。

于 2012-07-17T20:51:34.090 に答える