在学习了android网络编程部分,“网络编程之url携带参数”时代码未报异常,但是无法得到服务器的响应
下面是代码部分,我是用真机跑的
private static final String TAG = "RequestTestActivity";
public static final String BASE_URL ="http://192.168.1.2:9102";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_request_test);
}
public void getWithParams(View view){
Map<String,String> params =new HashMap<>();
params.put("keyword","这是关键的关键字Keyword");
params.put("page","12");
params.put("order","0");
startRequest(params,"GET","/get/param");
}
public void postWithParams(View view) {
Map<String,String> params = new HashMap<>();
params.put("string","这是我提交的字符串");
startRequest(params,"POST","/post/string");
}
private void startRequest(final Map<String,String> params,final String method,final String api) {
new Thread(new Runnable() {
@Override
public void run() {
BufferedReader bufferedReader = null;
try {
//组装参数
StringBuilder sb = new StringBuilder();
if(params != null && params.size() > 0) {
sb.append("?");
Iterator<Map.Entry<String,String>> iterator = params.entrySet().iterator();
while(iterator.hasNext()) {
Map.Entry<String,String> next = iterator.next();
sb.append(next.getKey());
sb.append("=");
sb.append(next.getValue());
if(iterator.hasNext()) {
sb.append("&");
}
}
Log.d(TAG,"sb result -- > " + sb.toString());
}
String params = sb.toString();
URL url;
if(params != null && params.length() > 0) {
url = new URL(BASE_URL + api + params);
} else {
url = new URL(BASE_URL + api);
}
Log.d(TAG,"url -=-- > " + url.toString());
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod(method);
httpURLConnection.setRequestProperty("Accept-Language","zh-CN,zh;q=0.9");
httpURLConnection.setRequestProperty("Accept","*/*");
httpURLConnection.connect();
int responseCode = httpURLConnection.getResponseCode();
Log.d(TAG,"result -- > " + responseCode);
if(responseCode == HttpURLConnection.HTTP_OK) {
InputStream inputStream = httpURLConnection.getInputStream();
bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String json = bufferedReader.readLine();
Log.d(TAG,"result -=-=- > " + json);
}
} catch(Exception e) {
e.printStackTrace();
} finally {
if(bufferedReader != null) {
try {
bufferedReader.close();
} catch(IOException e) {
e.printStackTrace();
}
}
}
}
}).start();
}
这两个是服务器截图和运行截图
从你提的Log上来看,应该是编码问题。
对URL进行编码一下
为什么不使用Okhttp?