记录一下自己的post请求接口的例子:
1.post请求。2,参数的处理。3,如果页面返回407错误
代码如下:
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.CoreProtocolPNames;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
public String roomNum(Map map){
String url = "http://www......com/";
String strResult = "";
try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost post = new HttpPost(url);
//如果你的接口写好了,返回407错误,那么需要加上这行代码
post.getParams().setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, false);。
post.getParams().setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, false);
List<BasicNameValuePair> postData = new ArrayList<BasicNameValuePair>();
for (Map.Entry<String, String> entry : map.entrySet()) {
postData.add(new BasicNameValuePair(entry.getKey(), entry
.getValue()));
}
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(postData,HTTP.UTF_8);//过时了?
post.setEntity(entity);
HttpResponse response = httpClient.execute(post);
// 若状态码为200 ok
if (response.getStatusLine().getStatusCode() == 200) {
// 取出回应字串
strResult = EntityUtils.toString(response.getEntity());
}
//返回的数据为json,那么需要转化一下,拿到自己需要的值
JSONObject jsonObject = JSONObject.fromObject(strResult.toString());
roomNumber = jsonObject.getString("room_num");
return roomNumber;
} catch (IOException e) {
e.printStackTrace();
}
return roomNumber;
}