gpt4 book ai didi

android - sotimeout 在 android 2.1 上的多部分 http 帖子中不起作用

转载 作者:搜寻专家 更新时间:2023-11-01 09:14:31 26 4
gpt4 key购买 nike

我正在使用 android sdk 附带的 apache httpclient 使用 multipart http post 在服务器上上传文件。问题是,当我关闭设备上的 wifi 连接并且设备在设置 sotimeout 和 connectiontimeout 后没有互联网访问和事件时,代码无限期地卡在 httpclient.execute() 语句上并且它每次都会发生。

我的代码是:

HttpClient httpclient = new DefaultHttpClient();

HttpConnectionParams.setSoTimeout(httpclient.getParams(), 5000);
ConnManagerParams.setTimeout( httpclient.getParams(), 5000 );

HttpConnectionParams.setSocketBufferSize(httpclient.getParams(), 8192);

HttpPost("http://myurl");

File file = new File(fileAbsolutePath);
MultipartEntity mpEntity = new MultipartEntity();
ContentBody cbFile = new FileBody(file);
mpEntity.addPart("uploadedfile", cbFile);
httppost.setEntity(mpEntity);
if(!backupCancel)
{
System.out.println("<<<<<<<<<<<<<<<<<<<<<<Actually transferring file>>>>>>>>>>>>>>>");
HttpResponse response = httpclient.execute(httppost);
}

最佳答案

试试这个:

假设你有一个 httpClient 对象,它是 AndroidHttpClient 或 DefaultHttpClient 的一个实例

HttpParams httpParams = httpClient.getParams();
httpParams.setIntParameter(CoreConnectionPNames.SO_TIMEOUT, Timeout in milli seconds);

你得到的httpParams是一个引用对象,所以它执行setIntParameter会解决这个问题

除非您真的对自定义超时有特殊要求,否则更喜欢使用 AndroidHttpClient 它非常有用并且可以解决我们的大部分问题:)祝您好运

关于android - sotimeout 在 android 2.1 上的多部分 http 帖子中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5701297/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com