背景

     今天通过api接口访问服务端,但是一直提示发送参数为空,后来使用NameValuePair 发送成功,记录在此,方便以后使用。

发送表单数据

/*** 发送消息* * @param url 地址* @param param 参数* @throws IOException*/public String sendPostRequest(String url,NameValuePair[] param) throws HttpException, IOException {String responseStr = "";HttpClient httpClient = new HttpClient();PostMethod postMethod = new PostMethod(url);postMethod.setRequestHeader("accept", "*/*");postMethod.setRequestHeader("connection", "Keep-Alive");postMethod.setRequestHeader("yonghong-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");postMethod.setRequestHeader("Accept-Language", "zh-cn,zh;q=0.5");postMethod.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");// 将表单的值放入postMethod中postMethod.setRequestBody(param);// 执行postMethodint statusCode = httpClient.executeMethod(postMethod);BufferedReader in = new BufferedReader(new InputStreamReader(postMethod.getResponseBodyAsStream(), "utf-8"));StringBuffer sb = new StringBuffer();int len;while ((len = in.read()) != -1) {sb.append((char) len);}responseStr = sb.toString();in.close();postMethod.releaseConnection();return responseStr;}

编辑一个xml类型数据

 data = "<?xml version='1.0' encoding='UTF-8'?>\n"+"<info>\n"+"    <user>\n"+"      <name>"+userName+"</name>\n"+"      <pass>"+password+"</pass>\n"+"      <email></email>\n"+"      <alias>"+userName+"</alias>\n"+"      <parent></parent>\n"+"      <roles>xx</roles>\n"+"  </user>\n"+"</info>";param = new NameValuePair[]{new NameValuePair("xmlData", data)};url = biAddress + "/serxasasce/aasasaspi?action=saveNode&type=user&token=" + token + "&IS=" + UUID.randomUUID();System.out.println(sendPostRequest(url, param));

示例:


import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.UUID;/**
* 执行表单任务
*
*
*/
public class ExecuteFrom {/*** 发送消息* * @param url 地址* @param param 参数* @throws IOException*/public String sendPostRequest(String url,NameValuePair[] param) throws HttpException, IOException {String responseStr = "";HttpClient httpClient = new HttpClient();PostMethod postMethod = new PostMethod(url);postMethod.setRequestHeader("accept", "*/*");postMethod.setRequestHeader("connection", "Keep-Alive");postMethod.setRequestHeader("yonghong-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");postMethod.setRequestHeader("Accept-Language", "zh-cn,zh;q=0.5");postMethod.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");// 将表单的值放入postMethod中postMethod.setRequestBody(param);// 执行postMethodint statusCode = httpClient.executeMethod(postMethod);BufferedReader in = new BufferedReader(new InputStreamReader(postMethod.getResponseBodyAsStream(), "utf-8"));StringBuffer sb = new StringBuffer();int len;while ((len = in.read()) != -1) {sb.append((char) len);}responseStr = sb.toString();in.close();postMethod.releaseConnection();return responseStr;}//ready porject public static void main(String[] args) throws Exception{new ExecuteFrom().action(0);}/*** 执行任务传入xml等数据* * @param i* @throws HttpException* @throws IOException*/public void action(int i) throws HttpException, IOException {final String biAddress = "http://101.110.11.94:8080";String adminName = "admsdin";String adminPassword = "Bxsdsd526";String userName = "wasdsdwu";String password = "abcdsdsdfj111!";//获取tokenString url = biAddress + "/bsdsdi/apsdsdi?action=login&adminv=" + adminName + "&passv=" + adminPassword + "&IS=" + UUID.randomUUID();NameValuePair[] param = new NameValuePair[]{};String result = sendPostRequest(url, param);String token = result.substring(result.indexOf("<message>")+"<message>".length(), result.indexOf("</message>"));System.out.println(token);String data = "";String path = "";if(i == 0) {//创建用户data = "<?xml version='1.0' encoding='UTF-8'?>\n"+"<info>\n"+"  <user isOverWrite='true'>\n"+"      <name>"+userName+"</name>\n"+"      <pass>"+password+"</pass>\n"+"      <email></email>\n"+"      <alias>"+userName+"</alias>\n"+"      <parent></parent>\n"+"      <roles>developer_role</roles>\n"+"  </user>\n"+"</info>";param = new NameValuePair[]{new NameValuePair("xmlData", data)};url = biAddress + "/bi/api?action=saveNode&type=user&token=" + token + "&IS=" + UUID.randomUUID();System.out.println(sendPostRequest(url, param));}else if(i == 1) {//获取用户信息 data =  "<?xml version='1.0' encoding='UTF-8'?>\n"+"<ref>\n"+"  <type>user</type>\n"+"</ref>";param = new NameValuePair[]{new NameValuePair("xmlData", data)};url = biAddress + "/bi/api?action=getNode&returnPwd=no&token=" + token + "&IS=" + UUID.randomUUID();System.out.println(sendPostRequest(url, param));}else if(i == 2) {//登出url = biAddress +"/bi/api?action=logout&IS=" + UUID.randomUUID();param = new NameValuePair[]{new NameValuePair("token", token)};System.out.println(sendPostRequest(url, param));}}}

api介绍:

构造函数摘要

NameValuePair()     默认构造函数。

 

NameValuePair(String name, String value)   构造函数。

 

方法摘要

boolean

equals(Object object)

String

getName()   返回名称。

String

getValue()     返回当前值。

int

hashCode()

void

setName(String name)   设置名称。

void

setValue(String value)     设置值。

String

toString()    获取此对的字符串表示形式。

从类java.lang继承的方法 

clonefinalizegetClassnotifynotifyAllwaitwaitwait

构造函数详细信息

 NameValuePair

public NameValuePair()

默认构造函数。


NameValuePair

public NameValuePairString  name, String  value)

构造函数。

参数:

name - 名字。

value - 价值。

方法细节

setName

public void setNameString  name)

设置名称。

参数:

name - 新名字

也可以看看:

getName()


getName

public String  getName()

返回名称。

返回:

字符串名称名称

也可以看看:

setName(String)


设定值

public void setValueString  value)

设置值。

参数:

value - 新价值。


的getValue

public String  getValue()

返回当前值。

返回:

字符串值当前值。


toString

public String  toString()

获取此对的字符串表示形式。

覆盖:

toString 在班上 Object

返回:

字符串表示。


等于

public boolean equalsObject  object)

覆盖:

equals 在班上 Object


hashCode

public int hashCode()

覆盖:

hashCode 在班上 Object

持续更新

java NameValuePair 实现 模拟 表单访问 服务 传输各类型数据相关推荐

  1. jQuery validate 表单验证,涵盖各种类型数据

    本来觉得用这个会很难,结果试了试,发现却是简单了不少东西啊,什么getElementById,if 什么的,只用几个属性名 什么的就可以解决不同状态显示不同提示,很强大很方便. <%@ page ...

  2. java 表单请求_java模拟表单请求

    表单普通字段 public class FormFieldKeyValuePair { private static final long serialVersionUID = 1L; // The ...

  3. php模拟表单提交登录,PHP模拟表单的post请求实现登录

    'stuid' => $stuid, 'pwd' => $pwd ); $ch = curl_init (); //初始化curl curl_setopt ( $ch, CURLOPT_U ...

  4. 为什么要模拟表单提交

    为什么要模拟表单提交 现在许多的网站都是需要登录验证后才能访问该网站的页面,爬虫(网络机器人[spider])该怎么获取这些页面呢!是的,爬虫也是需要登录的,才能获取到后面的页面. 爬虫怎么模拟表单登 ...

  5. python图书馆抢座_python模拟表单提交登录图书馆

    本文实例为大家分享了python模拟登录图书馆的具体代码,供大家参考,具体内容如下 模拟表单提交的原理: 我们都知道Http是无状态的,所以当我们提交的数据和浏览器中正常提交一样,那么服务器就会返回和 ...

  6. php 模拟表单提交-get-post

    <?php header("Content-Type: text/html; charset=utf-8");/*** Class SimulantForm 模拟表单*/ c ...

  7. js模拟表单html形式,JS模拟并美化的表单控件完整实例

    本文实例讲述了JS模拟并美化的表单控件效果实例.分享给大家供大家参考.具体如下: 这里演示使用JS美化并模拟网页表单控件,十分漂亮的表单效果,使用时可以将代码内的JS保存为文件, 方便调用,使用方法: ...

  8. java 动态导出excel表单 无模板文件下载

    java 动态导出excel表单 无模板文件下载 public ResponseEntity<byte[]> exportStanding(@PathVariable Long signu ...

  9. java 动态导出excel表单 无模板本地生成

    java 动态导出excel表单 无模板本地生成 这里使用的是alibaba的公共类excelWriter,注意在pom文件中要引入easyExcel的依赖 public void exportExc ...

最新文章

  1. 普通域账号客户端计算无关机选项
  2. 用Everything搜索指定的路径
  3. golang实现图片上传和下载
  4. [蓝桥杯][2019年第十届真题]等差数列
  5. 小结-python连接redis的基本配置-解决远程连接问题
  6. python网络编程学习笔记(二)
  7. 集成学习中的随机森林
  8. 【VR】Leap Motion 官网文档 FingerModel (手指模型)
  9. python基本规则语法
  10. python少儿编程教案_超好玩的Python少儿编程
  11. 动态ActionForm
  12. 《东周列国志》第五回 宠虢公周郑交质 助卫逆鲁宋兴兵
  13. 专业能力和表达能力,你觉得哪个更重要?
  14. 下面关于在dos停止mysql_下面关于在DOS停止MySql的命令中,正确的是 (5.0分)_学小易找答案...
  15. Linux下各种压缩文件的解压方法
  16. 如何进行移动端页面开发
  17. 华为 博士 实习_如何看待华为招聘生物博士实习生?
  18. 基于Netty实现的尬聊聊天室
  19. 2021全国人工智能师资培训正式“开课”,百度飞桨助力高校教师提升AI“超能力”...
  20. 自己遇到的Java软件工程师部分面试题(带答案解析)

热门文章

  1. 【答学员问】你们从培训机构毕业后都找到什么工作?
  2. 『Nginx』Nginx单双机热备方案实现
  3. 25匹马赛跑确定前五匹马的问题
  4. 深度学习基于DEAP的脑电情绪识别情感分类(附代码)
  5. Mapper代理文件实现
  6. [转]index.dat文件剖析
  7. 【51单片机】串口通信
  8. USB 3G卡热插拔那些事2
  9. 投影仪幕布增益_你还对投影仪幕布不了解吧?这些干货让你明白
  10. Pyinstaller 打包exe附带资源,运行时自动解压所需资源(图片文本音频等)