如图,他们提供的数据接口是这样说的,
于是我就这么写的,不对啊,该怎么写那
给你分享一个我的android访问http的类,超级好用,从来没让我担心过
public class MyHttpClient {
/**
* 通过HttpClient发送GET请求
* @param path 请求路径
* @param params 请求参数
* @param ecoding 请求编码
* @return 请求是否成功
*/
public HttpResponse sendHttpClientGETRequest(String path,Map<String, String> params, String ecoding) throws Exception {
StringBuilder url=new StringBuilder(path);
url.append("?");
for (Map.Entry<String, String> entry : params.entrySet()) {
url.append(entry.getKey()).append("=");
url.append(URLEncoder.encode(entry.getValue(),ecoding));
url.append("&");
}
url.deleteCharAt(url.length()-1);
HttpGet httpGet=new HttpGet(url.toString());
DefaultHttpClient client=new DefaultHttpClient();
client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 10000);
client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 10000);
HttpResponse response=client.execute(httpGet);
if(response.getStatusLine().getStatusCode()==200){
return response;
}
return null;
}
/**
* 通过HttpClient发送Post请求
* @param path 请求路径
* @param params 请求参数
* @param ecoding 请求编码
* @return 请求是否成功
*/
public HttpResponse sendHttpClientPOSTRequest(String path,
Map<String, String> params, String ecoding) throws Exception {
List<NameValuePair> pair=new ArrayList<NameValuePair>();//存放请求参数
if(params!=null && !params.isEmpty()){
for (Map.Entry<String, String> entry : params.entrySet()) {
pair.add(new BasicNameValuePair(entry.getKey(),entry.getValue()));
}
}
UrlEncodedFormEntity enFormEntity=new UrlEncodedFormEntity(pair,ecoding);
HttpPost httpPost=new HttpPost(path);
httpPost.setEntity(enFormEntity);
DefaultHttpClient client=new DefaultHttpClient();
client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 10000);
client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 10000);
HttpResponse response=client.execute(httpPost);
if(response.getStatusLine().getStatusCode()==200){
return response;
}
return null;
}
/**
* 通过HttpClient发送Post请求
* @param path 请求路径
* @param params 请求参数
* @param ecoding 请求编码
* @return 请求是否成功
*/
public HttpResponse sendHttpClientPOSTRequest(String path,
Map<String, String> params, String ecoding, int timeout) throws Exception {
List<NameValuePair> pair=new ArrayList<NameValuePair>();//存放请求参数
if(params!=null && !params.isEmpty()){
for (Map.Entry<String, String> entry : params.entrySet()) {
pair.add(new BasicNameValuePair(entry.getKey(),entry.getValue()));
}
}
UrlEncodedFormEntity enFormEntity=new UrlEncodedFormEntity(pair,ecoding);
HttpPost httpPost=new HttpPost(path);
httpPost.setEntity(enFormEntity);
DefaultHttpClient client=new DefaultHttpClient();
client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, timeout);
client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, timeout);
HttpResponse response=client.execute(httpPost);
if(response.getStatusLine().getStatusCode()==200){
return response;
}
return null;
}
}
你为什么不用DefaultHttpClient和HttpPost?
// 发送Post请求,获得响应查询结果
public static String queryStringForPost(String url) {
// 根据url获得HttpPost对象
HttpPost request = HttpUtil.getHttpPost(url);
String result = null;
try {
// 获得响应对象
HttpResponse response = HttpUtil.getHttpResponse(request);
// 判断是否请求成功
if (response.getStatusLine().getStatusCode() == 200) {
// 获得响应
result = EntityUtils.toString(response.getEntity());
return result;
}
} catch (ClientProtocolException e) {
e.printStackTrace();
result = "网络异常!";
return result;
} catch (IOException e) {
e.printStackTrace();
result = "网络异常!";
return result;
}
return null;
}