空的时候会过来在能力范围内帮同学解答问题,回复格式:
1.问题简述
2.关键代码+日志
1.问题简述
2.关键代码+日志
解决方案 »
- windows下如何下载android源代码
- java jni 怎么在windows环境中编译成linux下的so文件
- imageButton与Button相关问题
- android数据库的查询问题
- android 模拟器进不去 卡死在“andtoid_”界面 网上已经寻觅三天 均无法解决问题 望csdn中的高手能给与帮助 跪求啊
- Surface view 锯齿问题这么严重啊!
- listview中有edittext,如何能够让listview的item和edittext都能响应点击消息
- 求助:怎么能让android手机用USB无线网卡上网
- 关于pendingIntent的取消问题
- 学习android系统
- 高德地图Marker
- 聚合SDK aapt2 报错 You need to use a Theme.AppCompat theme
这一行
为什么报错
String data = response.body().string();
Log.d("测试", "onResponse: " + response + "-----" + data);
try {
JSONObject jsonObj = new JSONObject(data).getJSONObject("serverinfo");
int id = jsonObj.getInt("CarSpeed"); gson_json.setText("速度"+id);
} catch (JSONException e) {
System.out.println("Json parse error");
e.printStackTrace();
}
D/测试: onResponse: Response{protocol=http/1.1, code=200, message=, url=http://192.168.31.120:8080/transportservice/type/jason/action/GetCarSpeed.do}-----{"serverinfo":"{\"CarSpeed\":12}\n"}
I/System.out: Json parse error
W/System.err: org.json.JSONException: Value {"CarSpeed":12}
at serverinfo of type java.lang.String cannot be converted to JSONObject
W/System.err: at org.json.JSON.typeMismatch(JSON.java:100)
at org.json.JSONObject.getJSONObject(JSONObject.java:613)
at com.example.tomlin.post_get.OkHttpClientActivity$2$1.onResponse(OkHttpClientActivity.java:167)
at okhttp3.RealCall$AsyncCall.execute(RealCall.java:153)
at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
package com.lenovo.smarttraffic.post;
import android.util.Log;
import java.io.IOException;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;public class Post {
private String data="原始的data";
public String SendPost(String url, String sendJson){
new Thread(){
@Override
public void run() {
String data;
super.run();
OkHttpClient client=new OkHttpClient();
RequestBody body = RequestBody.create(MediaType.parse("application/json;charset=utf-8"),sendJson);
Request request = new Request.Builder().url(url).post(body).build();
Response response = null;
try {
response = client.newCall(request).execute();
data = response.body().string();
Log.d("获取的data值",data);
} catch (IOException e) {
e.printStackTrace();
} }
}.start(); return data;
}}
嗯,谢谢,用了别的办法解决了
嗯,谢谢,用了别的办法解决了不客气,哈哈
我又来了,我发现我这个问题没有根本的解决,现在还是出现上面这种状况,该如何处理呢?
我又来了,我发现我这个问题没有根本的解决,现在还是出现上面这种状况,该如何处理呢?如上所说,这里涉及到多线程之间通信问题,不然会导致的数据不同步,你修改成handler消息来处理应该问题不大
纠正一下,这是多线程问题,中间的代码是开了一个新的线程,return是在当前线程会直接返回回去此时你的新线程还没有来得及修改data的值。是的,这个涉及到多线程的问题,需要用hanler来处理,这种写法容易出现未知问题,需要注意,很多时候会忽视这个问题,曾经我也遇到多线程同步的问题,我相当于又犯一次,没看到问题根本,受教了
我又来了,我发现我这个问题没有根本的解决,现在还是出现上面这种状况,该如何处理呢?如上所说,这里涉及到多线程之间通信问题,不然会导致的数据不同步,你修改成handler消息来处理应该问题不大
已经解决了,利用handler 对msg的判断搞定了这个问题。非常感谢各位大佬不厌其烦的回答我的问题。我还会继续问下去的;
我又来了,我发现我这个问题没有根本的解决,现在还是出现上面这种状况,该如何处理呢?如上所说,这里涉及到多线程之间通信问题,不然会导致的数据不同步,你修改成handler消息来处理应该问题不大
已经解决了,利用handler 对msg的判断搞定了这个问题。非常感谢各位大佬不厌其烦的回答我的问题。我还会继续问下去的;
不客气,大家交流学习,共同进步,加油!
https://blog.csdn.net/angelsmiling/article/details/99679494