随缘56 2019-05-06 17:42 采纳率: 0%
浏览 4298
已结题

okhttp抛出, Response response = client.newCall(request).execute();报错,该怎么解决

 try {
               MediaType JSON = MediaType.parse("application/json; charset=utf-8");
               OkHttpClient client = new OkHttpClient();
               RequestBody body = RequestBody.create(JSON,ObjToJson.tojson(user));
               Request request = new Request.Builder()
                        .addHeader("Connection","close")
                        .url(Location.login)
                        .post(body)
                        .build();
                Log.v("url",Location.login);
                Log.v("body",body.toString());
                Response response = client.newCall(request).execute();
                if (response.isSuccessful()) {
                    User user2= JsonToObj.toUser(response.body().toString());
                    Toast.makeText(LoginActivity.this,user2.getTel(),Toast.LENGTH_SHORT).show();
                }else{
                    new Exception("Unexpected code " + response);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
V/url: http://120.79.146.32:8080/EasyToCreat2.0/User/login.action
V/body: okhttp3.RequestBody$2@90bbbec
W/System.err: android.os.NetworkOnMainThreadException
W/System.err:     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1448)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:355)
W/System.err:     at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
        at java.net.Socket.connect(Socket.java:616)
        at okhttp3.internal.Platform$Android.connectSocket(Platform.java:211)
        at okhttp3.internal.io.RealConnection.connectSocket(RealConnection.java:140)
        at okhttp3.internal.io.RealConnection.connect(RealConnection.java:111)
W/System.err:     at okhttp3.internal.http.StreamAllocation.findConnection(StreamAllocation.java:188)
        at okhttp3.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:127)
        at okhttp3.internal.http.StreamAllocation.newStream(StreamAllocation.java:97)
        at okhttp3.internal.http.HttpEngine.connect(HttpEngine.java:289)
        at okhttp3.internal.http.HttpEngine.sendRequest(HttpEngine.java:241)
        at okhttp3.RealCall.getResponse(RealCall.java:240)
        at okhttp3.RealCall$ApplicationInterceptorChain.proceed(RealCall.java:198)
        at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:160)
        at okhttp3.RealCall.execute(RealCall.java:57)
W/System.err:     at com.example.easytocreate.LoginActivity$button_login_loginClick.onClick(LoginActivity.java:60)
        at android.view.View.performClick(View.java:6256)
        at android.view.View$PerformClick.run(View.java:24701)
        at android.os.Handler.handleCallback(Handler.java:789)
        at android.os.Handler.dispatchMessage(Handler.java:98)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6541)
W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
  • 写回答

3条回答 默认 最新

  • 好好学习天天向夏 2019-05-06 17:47
    关注

    Android使用OkHttpClient请求网络资源,不能放到主线程上执行,可以new一个新线程执行网络请求

    评论

报告相同问题?

悬赏问题

  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛