gpt4 book ai didi

java - 如何访问服务器端的内容?

转载 作者:行者123 更新时间:2023-12-01 04:47:42 28 4
gpt4 key购买 nike

我在我的客户端中使用了以下代码:

HttpPost post = new HttpPost(url);
post.setEntity(new ByteArrayEntity(myString.getBytes("UTF8")));
HttpResponse response = this.execute(post);

我现在想访问服务器端的字符串。处理方法如下所示:

public void handle(String target, Request baseRequest, HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException { ... }

该请求仅允许我访问内容长度和类型,但不能访问内容本身。有什么指点吗?

我使用 java 作为 pl 和 javax.servlet 中的内置类。

最佳答案

出于某种原因,您已将该字符串设置为唯一的 HTTP 请求正文,而不是请求参数。因此,要获取它,您需要读取整个 HTTP 请求正文。这是在可用的 servlet 中

InputStream input = request.getInputStream();
// Read it into a String the usual way (using UTF-8).

请注意,如果已经预先读取过,这将返回一个空流,例如通过在同一请求上预先调用 getParameter() ,这将隐式解析 POST 请求正文。

更明智的方法是将其作为普通 URL 编码请求参数发送,如下所示(与默认情况下的 HTML 表单完全相同)

List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("myString", myString));
post.setEntity(new UrlEncodedFormEntity(params));

这样你就可以在 servlet 中这样做

String myString = request.getParameter("myString");
// ...

关于java - 如何访问服务器端的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15554234/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com