2

タイトルの通り、POSTリクエストを追加するNSMutableURLRequestと戻ってくると思いますか?nullサーバー側はすべてセットアップされてcurl -F "test=test" 127.0.0.1おり、希望する結果を得ることができます。

以下の方法からわかるようにNSLog、エラーテスト用に数秒配置しました。didReceiveResponseandconnectionDidFinishLoadingメソッドは機能しましたdidReceiveDataが、呼び出すことができませんでした。curlを使用したときにPOSTメッセージを配置せず、結果が何も得られなかった場合と同様です。viewDidLoadこのことから、私はその方法で何かを逃したと思うようになります。

また、一番下にjsonエンコーディングを使用してサーバーから応答を送信する方法を追加しました。

だから私は何かを逃したことがありますか?

- (void)viewDidLoad {
    NSString *yourPostString = [NSString stringWithFormat:@"test=test"];
    dataWebService = [NSMutableData data];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://127.0.0.1/"]];
    NSString *postLength =  [NSString stringWithFormat:@"%d", [yourPostString length]];

    [request addValue:@"text/html; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
    [request addValue:postLength forHTTPHeaderField:@"Content-Length"];    
    [request setHTTPMethod:@"POST"];
    [request setHTTPBody:[yourPostString dataUsingEncoding:NSUTF8StringEncoding]];

    myConnection = [NSURLConnection connectionWithRequest:request delegate:self];
    [myConnection start];  
}

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

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    [dataWebService appendData:data];
    NSLog(@"working %@", data);
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
    NSString *responseString = [[NSString alloc] initWithData:dataWebService encoding:NSUTF8StringEncoding];
    NSLog(@"Response: %@",responseString);
}

これが応答送信機能です。

function sendResponse($status = 200, $body = '', $content_type = 'text/html'){
    $status_header = 'HTTP/1.1 ' . $status . ' ' . getStatusCodeMessage($status);
    header($status_header);
    header('Content-type: ' . $content_type);
    echo $body;
}
4

1 に答える 1

2

リクエストContent-Typeはに設定する必要がありますapplication/x-www-form-urlencoded

于 2012-12-24T19:53:33.017 に答える