一、OkHttp发起Get请求网络数据
直接上代码:
package com.canary.okhttptest;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import java.io.IOException;
import okhttp3.Call;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class MainActivity extends AppCompatActivity {
private String jsonUrl = "http://192.168.1.168:8080/TestProject/JsonServlet";
private String paramUrl = "http://192.168.1.168:8080/TestProject/ParamServlet";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
connect();
}
/**
* 创建子线程,获取服务器返回数据
*/
private void connect() {
new Thread(){
@Override
public void run() {
getData();
}
}.start();
}
/**
* 通过get方式获取服务器返回数据
*/
private void getData() {
//创建网络请求对象
OkHttpClient okHttpClient = new OkHttpClient();
//创建请求参数
Request request = new Request.Builder().url(jsonUrl).build();
//创建发起网络请求对象
Call call = okHttpClient.newCall(request);
try {
//发起网络请求
Response response = call.execute();
if(response.isSuccessful()){
Log.d("网络连接成功","successful");
Log.d("网络连接成功","服务器消息:"+response.message());
Log.d("网络连接成功","服务器消息:"+response.toString());
Log.d("网络连接成功","服务器消息:"+response.body());
}else {
Log.d("网络连接失败","失败");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
打印Log:
二、OkHttp发起Post请求网络数据
代码:
package com.canary.okhttptest;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import java.io.IOException;
import okhttp3.Call;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
public class MainActivity extends AppCompatActivity {
private String jsonUrl = "http://192.168.1.168:8080/TestProject/JsonServlet";
private String paramUrl = "http://192.168.1.168:8080/TestProject/ParamServlet";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
connect();
}
/**
* 创建子线程,获取服务器返回数据
*/
private void connect() {
new Thread(){
@Override
public void run() {
postData();
}
}.start();
}
/**
* 通过post方式获取服务器返回数据
*/
private void postData() {
//创建网络请求对象
OkHttpClient okHttpClient = new OkHttpClient();
//创建post数据
MediaType type = MediaType.parse("application/json; charset=utf-8");
String json = "{name:zmm,age:26}";
RequestBody body = RequestBody.create(type,json);
//创建请求参数
Request request = new Request.Builder().url(jsonUrl).post(body).build();
//创建发起网络请求对象
Call call = okHttpClient.newCall(request);
try {
//发起网络请求
Response response = call.execute();
if(response.isSuccessful()){
Log.d("网络连接成功","successful");
Log.d("网络连接成功","服务器消息:"+response.message());
Log.d("网络连接成功","服务器消息:"+response.toString());
Log.d("网络连接成功","服务器消息:"+response.body());
}else {
Log.d("网络连接失败","失败");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
打印Log:
三、OkHttp使用post参数向服务器传递数据
代码:
package com.canary.okhttptest;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import com.squareup.okhttp.Call;
import com.squareup.okhttp.FormEncodingBuilder;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.RequestBody;
import com.squareup.okhttp.Response;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
private String jsonUrl = "http://192.168.1.168:8080/TestProject/JsonServlet";
private String paramUrl = "http://192.168.1.168:8080/TestProject/ParamServlet";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
connect();
}
/**
* 创建子线程,获取服务器返回数据
*/
private void connect() {
new Thread(){
@Override
public void run() {
postParam();
}
}.start();
}
/**
* 使用post请求向服务器发送数据
*/
private void postParam() {
//创建网络请求对象
OkHttpClient okHttpClient = new OkHttpClient();
RequestBody requestBody = new FormEncodingBuilder()
.add("name", "zmm")
.add("age", "26")
.add("job", "android")
.build();
//创建请求参数
Request request = new Request.Builder().url(paramUrl).post(requestBody).build();
//创建发起网络请求对象
Call call = okHttpClient.newCall(request);
try {
//发起网络请求
Response response = call.execute();
if(response.isSuccessful()){
Log.d("网络连接成功","successful");
Log.d("message",""+response.message());
Log.d("toString",""+response.toString());
Log.d("body",""+response.body());
}else {
Log.d("网络连接失败","失败");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
打印Log: