java 怎样发送 POST

Python013

java 怎样发送 POST,第1张

private void postMethod(String url) throws IOException

 {     

  url = "http://www.newsmth.net/bbslogin2.php"

  PostMethod postMethod = new PostMethod(url)

  // 填入各个表单域的值

  NameValuePair[] data = { new NameValuePair("id", "herrapfel"),new NameValuePair("passwd", "") }

  // 将表单的值放入postMethod中

  postMethod.setRequestBody(data)

  // 执行postMethod

  int statusCode = httpClient.executeMethod(postMethod)

  System.out.println(" status code:" + statusCode)

  // HttpClient对于要求接受后继服务的请求,象POST和PUT等不能自动处理转发

 

if(statusCode == HttpStatus.SC_OK)

  {

   StringBuffer contentBuffer = new StringBuffer()

   InputStream in = postMethod.getResponseBodyAsStream()

            BufferedReader reader = new BufferedReader(new InputStreamReader(in,postMethod.getResponseCharSet()))

            String inputLine = null

            while((inputLine = reader.readLine()) != null)

            {

             contentBuffer.append(inputLine)

             System.out.println("input line:"+ inputLine)

             contentBuffer.append("/n")

            }

            in.close()

  }

  else if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY || statusCode == HttpStatus.SC_MOVED_TEMPORARILY) 

  {

      // 从头中取出转向的地址

      Header locationHeader = postMethod.getResponseHeader("location")

      String location = null

      if (locationHeader != null) 

      {

       location = locationHeader.getValue()

       System.out.println("The page was redirected to:" + location)

      } 

      else 

      {

       System.err.println("Location field value is null.")

      }

  }

 

 

 

 }

/**

* 向指定 URL 发送POST方法的请求

*

* @param url

*发送请求的 URL

* @param param

*请求参数,请求参数应该是 name1=value1&name2=value2 的形式。

* @return 所代表远程资源的响应结果

*/

public static 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 (compatibleMSIE 6.0Windows NT 5.1SV1)")

// 发送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) {

System.out.println("发送 POST 请求出现异常!"+e)

e.printStackTrace()

}

//使用finally块来关闭输出流、输入流

finally{

try{

if(out!=null){

out.close()

}

if(in!=null){

in.close()

}

}

catch(IOException ex){

ex.printStackTrace()

}

}

return result

}