web-dev-qa-db-ja.com

エラー:__ tcp_connection_write_eof_block_invoke書き込みクローズコールバック受信エラー-iOS 10

XMLベースAPIリクエストをONVIFカメラに送信している間。 iOS 9デバイスでは正常に動作しましたが、iOS10では「500InternalError」が発生しました。

XCode 8コンソールは、以下のエラーメッセージを出力します。

2016-09-30 12:39:51.295419 VCPlugin[278:10183] [] nw_socket_get_input_frames recvmsg(fd 12, 1024 bytes): [54] Connection reset by peer
2016-09-30 12:39:51.301221 VCPlugin[278:10228] [] nw_socket_write_close shutdown(12, SHUT_WR): [57] Socket is not connected
2016-09-30 12:39:51.301307 VCPlugin[278:10228] [] nw_endpoint_flow_service_writes [3 10.107.2.153:80 ready socket-flow (satisfied)] Write request has 0 frame count, 0 byte count
2016-09-30 12:39:51.301903 VCPlugin[278:10185] [] __tcp_connection_write_eof_block_invoke Write close callback received error: [89] Operation canceled
2016-09-30 12:41:13.492053 VCPlugin[278:10287] [] __tcp_connection_write_eof_block_invoke Write close callback received error: [57] Socket is not connected
2016-09-30 12:42:51.278617 VCPlugin[278:10228] [] __tcp_connection_write_eof_block_invoke Write close callback received error: [22] Invalid argument

ユーザーが再試行して3〜4回再試行した場合は、サーバーから有効なxml応答を取得した後。

私はこのiOS10の動作を知りません。

これは、XMLAPIのPOSTリクエストを呼び出すために作成したコードです。

NSMutableURLRequest * urlRequest = [NSMutableURLRequest requestWithURL:url];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setHTTPBody:body];
[urlRequest setValue: @"application/soap+xml" forHTTPHeaderField:@"Content-Type"];
[urlRequest setValue: @"application/soap+xml" forHTTPHeaderField:@"Accept"];

NSURLSessionDataTask * dataTask = [defaultSession dataTaskWithRequest:urlRequest completionHandler:^(NSData *data1, NSURLResponse *response, NSError *error) {
        NSLog(@"Response:%@ %@\n", response, error);
        if(error == nil)
        {
             NSString * text = [[NSString alloc] initWithData: data1 encoding: NSUTF8StringEncoding];
              NSLog(@"Data = %@",text);
        }
}];

[dataTask resume];

Apple Form も読んでください。ただし、解決策は得られません。

5
Punita

このコードを試してください:

私も同じ問題を抱えていますが、あなたにできることがあります、

1)[製品]-> [スキーム]-> [スキームの編集]に移動します
2)左側のセクションを実行し、[引数]タブを選択して、[環境変数]にこれを入力します。

OS_ACTIVITY_MODEを値に:無効にします。

詳細については、以下のスクリーンショットをご覧ください。

enter image description here

これにより、コンソール内のメッセージが削除されます。

しかし、私はまだPLBuildVersionが両方に実装されていることに苦労しています..。

これがお役に立てば幸いです。

7