OkHttp一些基本步骤我就不多说啦,我的其他关于OkHttpde博客中写的很详细。
public class MainActivity extends AppCompatActivity {
OkHttpClient okHttpClient = new OkHttpClient();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void Post(View view){
Thread t1=new Thread(new Runnable() {
@Override
public void run() {
MediaType JSON = MediaType.parse("text/x-markdown; charset=utf-8");
List<Map<String,String>> list=new ArrayList<>();//将JSON数据以Map形式存储到list中,以list数组形式存储数据。
Map<String,String> map1=new HashMap<>();
Map<String,String> map2=new HashMap<>();
map1.put("Name","T1");
map1.put("Value","90");
map2.put("Name","T2");
map2.put("Value","90");
list.add(map1);
list.add(map2);
JSONArray jsonArray=new JSONArray(list);
String string=jsonArray.toString();
RequestBody requestBody= RequestBody.create(JSON,string);//将JSON数据打包成Body通过post上传;
Request request=new Request.Builder()
.url("http://www.lewei50.com/api/V1/gateway/UpdateSensors/01")
.addHeader("userkey","d4443f13d39a42ccbd20ad9ade868f3d")
.post(requestBody)
.build();
executeRequest(request);
}
});
t1.start();
}
private void executeRequest(Request request){
Call call=new OkHttpClient().newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Request request, IOException e) {
Log.i("tAG","错误");
}
@Override
public void onResponse(Response response) throws IOException {
final String result=response.body().string();//接收服务器返回来的信息
try {
/*JSONObject jsonObject=new JSONObject(result);*///将返回的信息转换成JSON形式
JSONObject jsonObject =new JSONObject("Successful");
} catch (JSONException e) {
e.printStackTrace();
}
}
});
}
}
Post数据
[
{
"Name":"T1",
"Value":"90"
},
{
"Name":"T2",
"Value":"90"
}
]
使用到了JSON,{}代表一个map集合,[]是一个list集合。post数据中,有两个map集合,两个map集合放在了list集合中。
返回结果实例
{
"Successful": true,
"Message": null
}
我们返回是上面这种格式,所以将返回的数据转成JSONObject形式,而不是JSONArray的形式.