public String sendPost(String url, String param) { PrintWriter out = null;//网络请求对应的输出流,就是客户端把参数给服务器 ?叫输出, BufferedReader in = null; String result = ""; try { URL realUrl = new URL(url); // 打开和URL之间的连接 URLConnection conn = realUrl.openConnection(); // 设置通用的请求属性 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); // 获取URLConnection对象对应的输出流 out = new PrintWriter(conn.getOutputStream()); // 发送请求参数 out.print(param); // flush输出流的缓冲 out.flush(); // 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { return "send_fail"; } // 使用finally块来关闭输出流、输入流 finally { try { if (out != null) { out.close(); } if (in != null) { in.close(); } } catch (IOException ex) { ex.printStackTrace(); } } return result; }
方法的参数:param ? 类似于:&uid=15831&content=测试
1.先构建参数
2.定义返回的数据类型,一般是json ? 最好是用数据类或者直接传递jsonArray
3.准备url ,然后调用这个方法就行了
public String doPost(String url, ArrayList<BasicNameValuePair> data) { try { //UrlEncodedFormEntity这个类是用来把输入数据编码成合适的内容 //两个键值对,被UrlEncodedFormEntity实例编码后变为如下内容:param1=value1¶m2=value2 UrlEncodedFormEntity entity = new UrlEncodedFormEntity(data, HTTP.UTF_8);//首先将参数设置为utf-8的形式, String result = "";//向服务器请求之后返回的数据结果 HttpClient httpClient = new DefaultHttpClient();//申明一个网络访问客户端 HttpPost post = new HttpPost(url);//post方式 post.setEntity(entity);//带上参数 HttpResponse httpResponse = httpClient.execute(post);//响应结果 if (httpResponse.getStatusLine().getStatusCode() == 200) {//如果是200 ?表示成功 result = EntityUtils.toString(httpResponse.getEntity());//把结果取出来 ?是一个STRING类型的 } return result; } catch (Exception e) { Log.i("post_exception", e.toString()); return null; } }
1.准备参数,需要申明一个BasicNameValuePair,然后是一个键一个值,放进去就可以了
2.定义返回的数据类型,一般是json ? 最好是用数据类或者直接传递jsonArray
3.准备url ,然后调用这个方法就行了