当前位置: 首页 > 知识库问答 >
问题:

如何在play 2.1中为WS. post()设置参数Java

宰父劲
2023-03-14

我试图执行play.api.libs.ws.WS后,但我不知道如何设置参数,我的代码:

Promise<Response> promise = WS.url(Play.application().configuration()
                .getString("sms.service.url")).post();

.post-take(T-body,play.api.http.Writeable wrt,play.api.http.ContentTypeOf-ct),但我不明白应该如何将参数传递到那里。文件仅说明:

Promise<WS.Response> result = WS.url("http://localhost:9001").post("content");

如何设置内容,例如param1=foo和param2=bar?

共有3个答案

向安福
2023-03-14

公认的答案是错误的,或者至少是误导性的。代码

WS.url("http://localhost:9001")
    .setQueryParameter("param1", "foo")
    .setQueryParameter("param2", "bar")
    .post("content");

将字符串内容发布到http://localhost:9001/?param1=foo

WS.url("http://localhost:9001")
   .post(Map("param1" -> Seq("foo"),
             "param2" -> Seq("bar")))

它将表单参数1=foo

濮阳翔
2023-03-14

嗯,我想我真的应该开始看进口了!

我不小心用了导入播放。应用程序编程接口。图书馆。ws。WS而不是导入播放。图书馆。WS;当使用play时。图书馆。WS-post(字符串)和setContentType(字符串)等所有方法都显示了它们自己。我就是这样做的:

import play.Play;
import play.libs.F;
import play.libs.WS;

public static Result wsAction() {
    return async(
        play.libs.WS.url(Play.application().configuration()
            .getString("sms.service.url"))
            .setContentType("application/x-www-form-urlencoded; charset=utf-8")                       
            .post("param1=foo&param2=bar").map(
                new F.Function<WS.Response, Result>() {
                    public Result apply(WS.Response response) {
                       return ok(response.toString());
                    }
                }
            )
        );
    }
姬捷
2023-03-14

尝试按如下方式构造请求:

WS.url("http://localhost:9001")
    .setQueryParameter("param1", "foo")
    .setQueryParameter("param2", "bar")
    .post("content");

方法url(java.lang.String url)返回一个WS. WSrecestHolder引用,该引用可用于使用对setQueryParameter的链接调用来修改原始请求。

 类似资料:
  • 问题内容: 我正在尝试使用play.api.libs.ws.WS进行发布,但是我不知道如何设置参数,我的代码是: .post 需要(T主体,play.api.http.Writeable wrt,play.api.http.ContentTypeOf ct),但我不知道如何在此处传递参数。该文档仅说明: 我如何设置内容例如。 param1 = foo 和 param2 = bar ? 问题答案:

  • 问题内容: 我正在使用 javax.servlet.http.HttpServletRequest 来实现Web应用程序。 我可以使用 getParameter 方法获取请求的参数。但是我不知道如何在请求中设置参数。 问题答案: 您不能,不使用标准API。代表服务器收到的请求,因此添加新参数不是有效的选择(就API而言)。 原则上,您可以实现一个子类,该子类包装原始请求,并拦截方法,并在转发时传递

  • 我正在努力将jdbcType设置为传递给Ibatis查询的参数。我的后端表有定义为varchar的字段,mybatis框架似乎正在将我在Mapper.java中传递的字符串参数转换为nvarchar。因此,查询优化器需要时间来验证执行计划,执行隐式类型转换,从而导致一些意外的延迟。对解决这个问题有什么建议吗?

  • 问题内容: 我有一个实体: 我在说。这是我的DAO方法: 日志说: 请求处理失败;嵌套的异常是java.lang.NullPointerException 并将指针放在这一行: 有时必须为null。那么如何设置null? 问题答案: 如果您查看Query类的文档,setInteger()方法, 它以名称和 原始类型int 作为参数。 当您在 自动装箱 期间传递值为null的包装器类型Integer

  • Docker for windows:2.0.0.3(31259) 我在docker中运行elasticsearch和kibana。elasticsearch运行。但是kibana不能运行。它总是尝试连接超文本传输协议://elasticsearch: 9200。我设置了ELASTICSEARCH_URLkibana命令。但不起作用 要求http://localhost:5601/.Kibana服

  • 问题内容: 我试图在Windows 7 64位的Netbeans 7.1 Java项目中设置命令行参数。 Netbeans没有传递我给它的参数。 我转到-> -> ->并在“自变量”旁边键入自变量,但是自变量未传递到程序。我如何通过他们? 问题答案: 我猜您正在使用(或shift-F6)而不是运行文件。NetBeans 7.1帮助文件(F1是您的朋友!)说明Arguments参数: 添加参数以在应