错误:__tcp_connection_write_eof_block_invoke 写入关闭回调收到错误 - iOS 10
Posted
技术标签:
【中文标题】错误:__tcp_connection_write_eof_block_invoke 写入关闭回调收到错误 - iOS 10【英文标题】:Error: __tcp_connection_write_eof_block_invoke Write close callback received error - iOS 10 【发布时间】:2016-09-30 12:36:12 【问题描述】:向 ONVIF 摄像头发送 XML 基础 API 请求时。它在 ios 9 设备上运行良好,但在 iOS 10 上出现“500 内部错误”。
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
如果用户重试并重试三到四次,则在从服务器获得有效的 xml 响应之后。
我不知道 iOS 10 的这种行为。
这是我为调用 XML API 发布请求编写的代码:
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,但没有得到解决方案。
【问题讨论】:
【参考方案1】:试试这个代码:
我也有同样的问题,但是您可以采取一些措施,
1) 进入产品 -> 方案 -> 编辑方案 2)运行左侧的部分,选择参数选项卡,然后在环境变量中放这个。
OS_ACTIVITY_MODE 的值:禁用。
欲了解更多信息,请查看以下屏幕截图。
这将消除控制台中的消息。
但我仍然在努力解决PLBuildVersion
在两者中的实现......
希望对你有帮助!
【讨论】:
感谢 Bhadresh,您的解决方案有助于从控制台中删除消息。但仍面临 XML 响应中的“500 内部错误”。 但同样的代码在 iOS 9.0 和以前的版本中运行良好。仅在 iOS 10 中给出“500 内部错误”。 是的,请求和响应都是 XML 格式。谢谢 您找到解决问题的方法了吗?我在我的应用程序中发现了同样的事情,但我认为这与网络服务器因多个同时请求而过载有关。对我来说,它只是在我开始一次发送多个请求之后才开始的。我正在研究异步减慢请求,看看它是否仍然发生。 大家好,我有这个错误,在浏览器中一切正常,在设备中 - 错误,完全有帮助 - 清理+重启设备+清除派生数据以上是关于错误:__tcp_connection_write_eof_block_invoke 写入关闭回调收到错误 - iOS 10的主要内容,如果未能解决你的问题,请参考以下文章