NSMutableURLRequestを使用してサーバーからデータを取得しています。私がフェッチしているCodeigniterベースのAPIエンドポイントは、Webサイトのブラウザーから100%動作しますが、アプリの場合は約75%動作します。
投稿値をサーバーに送信し、アプリに吐き戻すという簡単なテストを実行しました。毎回同じ値を送信していますが、正しい応答を受け取るのは約75%です。
これが私のアプリコードです。
// Request
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@", URL_API, endpoint]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
[request setCachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData];
[request setHTTPMethod:method];
[request setValue:contentType forHTTPHeaderField:@"content-type"];
[request setTimeoutInterval:timeoutInterval];
DLog(@"bodyValues: %@", bodyValues);
// Set body
[request setHTTPBody:[self encodeDictionary:bodyValues]];
// Connection
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
if (connection) {
data = [[NSMutableData alloc] init];
}
else {
[self showError];
}
これが私のサーバーのコードです。
header('HTTP/1.1 200 OK');
header('Status: 200 OK');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Request-Method: GET,POST');
header('Access-Control-Allow-Headers: x-requested-with');
header('Content-Type: application/x-json;charset=utf-8');
header('Connection: keep-alive');
print(json_encode($this->input->post()));
私が提供できる他のコードがあれば、私に知らせてください。前もって感謝します!
編集:また、これはシミュレーターとデバイスの両方で問題になります。