1.9中HttpKit post方法中的data参数是什么?

发布于 2021-12-03 14:21:47 字数 850 浏览 783 评论 9

@JFinal 你好,想跟你请教个问题:

/**
	 * Send POST request
	 */
	public static String post(String url, Map<String, String> queryParas, String data, Map<String, String> headers) {
		HttpURLConnection conn = null;
		try {
			conn = getHttpConnection(buildUrlWithQueryString(url, queryParas), POST, headers);
			conn.connect();
			
			OutputStream out = conn.getOutputStream();
			out.write(data.getBytes(CHARSET));
			out.flush();
			out.close();
			
			return readResponseString(conn);
		}
		catch (Exception e) {
			throw new RuntimeException(e);
		}
		finally {
			if (conn != null) {
				conn.disconnect();
			}
		}
	}

第三个参数data是什么意思呢?谁能给个post例子。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

简单气质女生网名 2021-12-08 20:50:11

使用方法HttpKit.post(url,jsonStr)。

controller里接收:

String readData = HttpKit.readData(getRequest());

这样读取你的搞进来的字符串。然后对此进行解析。

注意事项::::

你不能在JFinalafterstart里使用ActionReporter.setReportAfterInvocation(false);

你若这样设置,在调用controller之前它就会解析你的request!!!。这样你在controller就读不了了!!!tomcat的request里的流只能读一遍。就是遇到了这种坑,才会有感而发。我说咋好好的功能,咋说不行就不行。原因就是想先输出reporter,再输出执行的sql。结果......

恋你朝朝暮暮 2021-12-08 20:50:03

[2.2]   data 的字符串格式:

a=1&b=2&c=3&d=4&stu.name=jfinal&stu.age=4

栗子:

/**保存用户<br>
	 姓名: ${information[0]}	<br>
	性别: ${information[1]}	<br>
	民族: ${information[2]}	<br>
	出生日期: ${information[3]}	<br>
	出生地址: ${information[4]}	<br>
	身份证号码: ${information[5]}	<br>
	签发机关: ${information[6]}	<br>
	有效期限: ${information[7]}	<br>
	 * file 身份证头像
	 */
	public JSONObject addStudent(List<String> information){
		return submit(PropKit.get("serviceWebSite") + apiUri + "addStudent",
				new StringBuffer().
				append("stu.real_name=").append(information.get(0)).
				append("&stu.sex=").append(information.get(1).equals("男")?1:0).
				append("&stu.birthday=").append(information.get(3)).
				append("&stu.stuaddress=").append(information.get(4)).
				append("&stu.zjnumber=").append(information.get(5)).
				append("&bmp=").append(ToolImgToBase64.getImgStr(PathKit.getWebRootPath() + "/dll/zp.bmp").replaceAll("\+", "#"))
				);
	}


/**和 后台交互 */
	private JSONObject submit(String url, StringBuffer stringBuffer){
		try {
			stringBuffer.append("&protocol=").append(getProtocol());
			String ret = HttpKit.post(url, stringBuffer.toString());
			//阿里json
			JSONObject json = JSONObject.parseObject(ret);
			System.out.println(json.toJSONString());
			return json;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

自此以后,行同陌路 2021-12-08 20:49:18

源码一看就明白了,,,,

悟红尘 2021-12-08 20:43:54

@Jfinal

HttpKit.post("http://192.168.1.100/fetch", params)  这样吗?

怎言笑 2021-12-08 20:40:52

这样不太合理。 现在我就想调用POST方法,但是又不需要data。有些API调用的时候是识别HTTP方法的。不能用GET

月牙弯弯 2021-12-08 20:05:03

引用来自“Snowfox_66”的评论

@Jfinal

不可以用POST方式,只能用GET吗?

狼亦尘 2021-12-08 20:00:31

@Jfinal

不可以用POST方式,只能用GET吗?

南冥有猫 2021-12-08 02:45:20

波总的回复"相关代码改成"后面应该是漏了代码片段吧。 可以试一下,将params改写为 "encode(key1)=encode(value1)&encode(key2)=encode(value2)...."这种格式赋值给HttpKit.post的data形参吧,对方应该正常接收了

皇甫轩 2021-12-06 18:24:57

例如:(头部信息瞎编的)

POST url+queryParas HTTP/1.1

Accept-Encoding:
gzip, deflate

Accept-Language:
zh-CN,zh;q=0.8,en;q=0.6

Cache-Control:
no-cache

Connection:
keep-alive

Content-Length:
104

Content-Type:
application/x-www-form-urlencoded; charset=UTF-8

data

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文