连接服务器请求 GET 错误 java.net.ProtocolException

初级程序猿洪国强 2012-07-28 05:53:19
// 创建URL
URL url = new URL(urlPath);
Log.i(TAG, "startDowload url -------->" + url);

// 创建HttpURLConnection对象
HttpURLConnection conn = (HttpURLConnection) url
.openConnection();
Log.i(TAG, "startDowload conn.getResponseCode() -------->"
+ conn.getResponseCode());
Log.i(TAG, "startDowload conn -------->" + conn);
// 设置连接超时
conn.setConnectTimeout(3000);
// 设置连接方式
conn.setRequestMethod("GET");









报错误
07-28 09:22:41.460: WARN/System.err(18194): java.net.ProtocolException: Connection already established
07-28 09:22:41.480: WARN/System.err(18194): at java.net.HttpURLConnection.setRequestMethod(HttpURLConnection.java:429)
07-28 09:22:41.480: WARN/System.err(18194): at com.hgq.download.server.Downloader.startDowload(Downloader.java:82)
07-28 09:22:41.480: WARN/System.err(18194): at com.hgq.download.MainActivity.startDownload(MainActivity.java:115)
07-28 09:22:41.490: WARN/System.err(18194): at com.hgq.download.MainActivity.onClick(MainActivity.java:84)
07-28 09:22:41.490: WARN/System.err(18194): at android.view.View.performClick(View.java:2408)
07-28 09:22:41.490: WARN/System.err(18194): at android.view.View$PerformClick.run(View.java:8816)
07-28 09:22:41.490: WARN/System.err(18194): at android.os.Handler.handleCallback(Handler.java:587)
07-28 09:22:41.500: WARN/System.err(18194): at android.os.Handler.dispatchMessage(Handler.java:92)
07-28 09:22:41.500: WARN/System.err(18194): at android.os.Looper.loop(Looper.java:123)
07-28 09:22:41.500: WARN/System.err(18194): at android.app.ActivityThread.main(ActivityThread.java:4627)
07-28 09:22:41.500: WARN/System.err(18194): at java.lang.reflect.Method.invokeNative(Native Method)
07-28 09:22:41.500: WARN/System.err(18194): at java.lang.reflect.Method.invoke(Method.java:521)
07-28 09:22:41.510: WARN/System.err(18194): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
07-28 09:22:41.510: WARN/System.err(18194): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
07-28 09:22:41.510: WARN/System.err(18194): at dalvik.system.NativeStart.main(Native Method)


请问高手怎么解决吖.?
我连接服务器的代码都这样子的..
一直都没出现问题..就今天出了问题..
好纠结..
...全文
1663 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyb2518 2012-07-28
  • 打赏
  • 举报
回复
将设置连接方式放在创建HttpURLConnection对象下面看看。

// 创建URL
URL url = new URL(urlPath);
Log.i(TAG, "startDowload url -------->" + url);

// 创建HttpURLConnection对象
HttpURLConnection conn = (HttpURLConnection) url
.openConnection();
// 设置连接方式
conn.setRequestMethod("GET");
// 设置连接超时
conn.setConnectTimeout(3000);
Log.i(TAG, "startDowload conn.getResponseCode() -------->"
+ conn.getResponseCode());
Log.i(TAG, "startDowload conn -------->" + conn);
wintergoes 2012-07-28
  • 打赏
  • 举报
回复
如果没有建立连接并执行getInputStream
在调用getResponseCode的时候,该函数会自动执行getInputStream并获取Response Code
所以你在此函数后再设置Request Type就会造成Connection already established错误。

所以应该改成这样的

...
conn.setRequestMethod("GET");
conn.getInputStream();

Log.i(TAG, "startDowload conn.getResponseCode() -------->"
+ conn.getResponseCode());



conn.getInputStream();获取返回流并已获得ResponseCode
AMinfo 2012-07-28
  • 打赏
  • 举报
回复
Log.i(TAG, "startDowload conn.getResponseCode() -------->"
+ conn.getResponseCode());
这段去掉

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧