public class MainActivity extends Activity { private EditText et_content; private String path = "http://op.juhe.cn/robot/index"; private String getPath; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_content = (EditText) findViewById(R.id.et_content); } public void getMethod(View v) { // get请求 // http://op.juhe.cn/robot/index?info=你好&key=您申请到的APPKEY String content = et_content.getText().toString().trim(); // 定义请求路径 try { getPath = path + "?info=" + URLEncoder.encode(content, "utf-8") + "&key=65e2651ed3d6c03fb7172df8059578b8"; } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } new Thread() { public void run() { try { // 面向对象思想 // 创建客户端对象 HttpClient httpClient = new DefaultHttpClient(); // 创建get对象-指定路径 HttpGet httpGet = new HttpGet(getPath); // 执行get请求,获取相应对象 HttpResponse httpResponse = httpClient.execute(httpGet); // http 200 Ok // 获取状态行 StatusLine statusLine = httpResponse.getStatusLine(); // 获取状态码 int statusCode = statusLine.getStatusCode(); if (statusCode == 200) { // 获取请求实体对象 HttpEntity entity = httpResponse.getEntity(); // 获取实体内容 InputStream inputStream = entity.getContent(); String data = StreamUtils.parseStream(inputStream); System.out.println("-----" + data); } } catch (Exception e) { e.printStackTrace(); } }; }.start(); } public void postMethod(View v) { // 请求参数放到实体内容中 new Thread() { public void run() { try { // 定义一个请求客户端对象 HttpClient httpClient = new DefaultHttpClient(); // 定义post请求 HttpPost httpPost = new HttpPost(path); // 创建存放键值对的集合 List<BasicNameValuePair> parameters = new ArrayList<BasicNameValuePair>(); //添加参数 parameters.add(new BasicNameValuePair("info", et_content .getText().toString().trim())); parameters.add(new BasicNameValuePair("key", "65e2651ed3d6c03fb7172df8059578b8")); // 创建一个通过url编码过的表单对象 HttpEntity entity = new UrlEncodedFormEntity(parameters, "utf-8"); // 设置post请求的实体对象 httpPost.setEntity(entity); //执行post请求获取相应对象 HttpResponse httpResponse = httpClient.execute(httpPost); if(httpResponse.getStatusLine().getStatusCode()==200){ InputStream inputStream = httpResponse.getEntity().getContent(); String data = StreamUtils.parseStream(inputStream); System.out.println("----"+data); } } catch (Exception e) { e.printStackTrace(); } }; }.start(); }
相关推荐
《深入解析httpclient.jar及其与code.jar的关联》 在Java开发中,HTTP通信是不可或缺的一部分,而Apache HttpClient库正是Java实现HTTP客户端操作的重要工具。本文将深入探讨httpclient.jar包,以及它与code.jar包...
HttpClient 4.2.1版本引入了一些重要的改进和修复,以提高性能和稳定性。以下是一些关键特性: 1. **连接管理**:HttpClient 4.2.1引入了更完善的连接管理机制,允许开发者控制连接的创建、复用和关闭。`...
例如,在HttpClient 3.x中,代码可能会使用`***mons.httpclient.HttpClient`类和`***mons.httpclient.methods.GetMethod`等,而在4.x版本中,这些都被新的API所替代。程序员需要熟悉`org.apache....
赠送jar包:httpclient-4.2.5.jar; 赠送原API文档:httpclient-4.2.5-javadoc.jar; 赠送源代码:httpclient-4.2.5-sources.jar; 赠送Maven依赖信息文件:httpclient-4.2.5.pom; 包含翻译后的API文档:httpclient...
本文将深入探讨HttpClient 4.2.1的核心特性和使用方法,帮助开发者更好地理解和应用这个强大的工具。 一、HttpClient简介 HttpClient是一个开放源码的Java库,由Apache软件基金会维护。它为Java程序员提供了一个...
HttpClient httpClient = new HttpClient(); // 设置 Http 连接超时为5秒 httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000); /* 2 生成 GetMethod 对象并设置参数 */ GetMethod ...