这个话题与我在dba.stackexchange.com上的其他问题很相似,但问题不同
我的数据库中有两个表,一个是user_app表,其中存储了用户信息,表格如下:
+--------------+--------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+-------------------+-----------------------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| apikey | varchar(32) | NO | | NULL | |
| app_id | varchar(16) | NO | | NULL | |
| appidt | varchar(100) | NO | | NULL | |
| imei_num | varchar(32) | NO | MUL | NULL | |
| app_version | …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 python requests库从服务器上的远程主机流式传输数据,但由于请求字节不足而导致 ImcompleteRead 出现 ChunkedEncodingError,我发出了 4096 字节块的请求,但服务器在任何步骤都向我发送了部分内容。我在堆栈溢出上遇到了类似的问题,但他们都建议使用 http1.0 而不是 1.1,我也尝试过 urllib 但到目前为止没有成功。
我已经在上下文中完成了代码部分,以确保连接将正常关闭,但我随时都会遇到异常r = req.iter_content(chunk_size=4096)。已尝试在异常中重新尝试,但异常是相同的。
IncompleteRead 问题的解决方案是什么?
更新:采用小块大小(256 或 512)对于大文件或数据没有太大帮助,但小文件可以正常下载。这是片段:
with requests.get("https://example.com/data", headers={ 'Content-Type': 'application/octet-stream'}, stream=True) as r:
with open("test10.dat", 'wb') as f:
for chunk in r.iter_content(chunk_size=256):
if chunk:
print("Chunk size to be write for another file", len(chunk))
f.write(chunk)
Run Code Online (Sandbox Code Playgroud) 这是我的代码,在这段代码中,我通过函数read_from_json读取现有数组,该函数将JSON转换为数组,现在从远程数据中获取新数据,因此我必须将这些数据附加到现有数组中而不覆盖整个数据阵列.就像我得到一个id一样,它使用in_array函数进行搜索,如果找不到,则向其发送消息,然后将唯一的特定条目附加到现有数组.由于foreach迭代存在一个问题,所以它会覆盖所有数组,我还能做些什么.请看一下这段代码:
$read_data = $this->read_from_json( 'xyz.json' );
foreach ( $projects_id_tickcamp as $tick_id => $base_id ) {
if ( !$this->in_array( $base_id['base_id'], $read_data ) ) {
echo '<b>do post message function for ' . $tick_id . ' ' . $base_id['base_id'] . '</b><br />';
$i = count( $read_data );
while ( $i >= count( $base_id['base_id'] ) ) {
echo 'post message start' .'<br />';
$i++;
break;
$projects_id_tickcamp[$tick_id]['message_id'] = 1;
}
//echo 'posted message id of ' . $base_id['basecamp_id'] . '<br …Run Code Online (Sandbox Code Playgroud)