Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Quarkus/Java发送一个简单的POST请求_Java_Post_Request_Quarkus - Fatal编程技术网

从Quarkus/Java发送一个简单的POST请求

从Quarkus/Java发送一个简单的POST请求,java,post,request,quarkus,Java,Post,Request,Quarkus,我想向另一个应用程序发送一个简单的POST请求,在那里触发一些操作 我有一个quarkus项目,希望从我的CreateEntryHandler内部发送请求-这可以用简单的方式实现吗?或者我需要在我的项目中添加ApacheHttpClient之类的东西吗?与quarkus结合使用有意义吗?我假设另一个应用程序有一个API端点 让我们声明您试图在其他应用程序中调用的API端点为: POST/v1/helloworld 从Quarkus应用程序中,您必须执行以下操作: com.helloworld.s

我想向另一个应用程序发送一个简单的POST请求,在那里触发一些操作


我有一个quarkus项目,希望从我的CreateEntryHandler内部发送请求-这可以用简单的方式实现吗?或者我需要在我的项目中添加ApacheHttpClient之类的东西吗?与quarkus结合使用有意义吗?

我假设另一个应用程序有一个API端点

让我们声明您试图在其他应用程序中调用的API端点为:

POST/v1/helloworld

从Quarkus应用程序中,您必须执行以下操作:

com.helloworld.services.HelloWorldService/mp-rest/url=https://yourOtherApplication.com/API 
  • 将RestClient*注册为服务
  • 在配置属性中指定服务信息
  • 注入并使用此服务
---在您当前的应用程序中---

请密切注意包名。它必须在application.properties文件中完全匹配

HelloWorldService.java

package com.helloworld.services

@Path("/v1")
@RegisterRestClient
public interface HelloWorldService{

    @POST
    @Path("/helloworld")
    Response callHeloWorld(HelloWorldPojo payloadToSend);
}
@JsonPropertyOrder({"id", "name"})
public class HelloWorldProjo{

  private long id;
  private String name;

  //Setters
  //Getters

}
@RequestScoped
public class ServiceWhichCallsYourOtherAPI{


    @Inject
    @RestClient
    HelloWorldService helloWorldService;



    public void methodA(){

         HelloWorldPojo payloadToSend = new HelloWorldPojo();
         payloadToSend.setId(123);
         payloadToSend.setName("whee");

         helloWorldService.callHelloWorld(payloadToSend);

   } 

}
//注意,我们没有在mp rest/url中包含/v1,为什么?因为它包含在@RestClient路径中

更新您的应用程序。属性以包括以下内容:

com.helloworld.services.HelloWorldService/mp-rest/url=https://yourOtherApplication.com/API 
---您将作为有效负载发送的HelloWorldPojo

HelloWorldProjo.java

package com.helloworld.services

@Path("/v1")
@RegisterRestClient
public interface HelloWorldService{

    @POST
    @Path("/helloworld")
    Response callHeloWorld(HelloWorldPojo payloadToSend);
}
@JsonPropertyOrder({"id", "name"})
public class HelloWorldProjo{

  private long id;
  private String name;

  //Setters
  //Getters

}
@RequestScoped
public class ServiceWhichCallsYourOtherAPI{


    @Inject
    @RestClient
    HelloWorldService helloWorldService;



    public void methodA(){

         HelloWorldPojo payloadToSend = new HelloWorldPojo();
         payloadToSend.setId(123);
         payloadToSend.setName("whee");

         helloWorldService.callHelloWorld(payloadToSend);

   } 

}
在另一个服务中,您实际希望使用此服务:

serviceswhichcallsyourotherapi.java

package com.helloworld.services

@Path("/v1")
@RegisterRestClient
public interface HelloWorldService{

    @POST
    @Path("/helloworld")
    Response callHeloWorld(HelloWorldPojo payloadToSend);
}
@JsonPropertyOrder({"id", "name"})
public class HelloWorldProjo{

  private long id;
  private String name;

  //Setters
  //Getters

}
@RequestScoped
public class ServiceWhichCallsYourOtherAPI{


    @Inject
    @RestClient
    HelloWorldService helloWorldService;



    public void methodA(){

         HelloWorldPojo payloadToSend = new HelloWorldPojo();
         payloadToSend.setId(123);
         payloadToSend.setName("whee");

         helloWorldService.callHelloWorld(payloadToSend);

   } 

}
然后,POST请求将转到

json将如下所示:

{
  "id":123,
  "name":"whee"
}

非常好的阅读:

另一个应用程序,我假设有一个API端点

让我们声明您试图在其他应用程序中调用的API端点为:

POST/v1/helloworld

从Quarkus应用程序中,您必须执行以下操作:

com.helloworld.services.HelloWorldService/mp-rest/url=https://yourOtherApplication.com/API 
  • 将RestClient*注册为服务
  • 在配置属性中指定服务信息
  • 注入并使用此服务
---在您当前的应用程序中---

请密切注意包名。它必须在application.properties文件中完全匹配

HelloWorldService.java

package com.helloworld.services

@Path("/v1")
@RegisterRestClient
public interface HelloWorldService{

    @POST
    @Path("/helloworld")
    Response callHeloWorld(HelloWorldPojo payloadToSend);
}
@JsonPropertyOrder({"id", "name"})
public class HelloWorldProjo{

  private long id;
  private String name;

  //Setters
  //Getters

}
@RequestScoped
public class ServiceWhichCallsYourOtherAPI{


    @Inject
    @RestClient
    HelloWorldService helloWorldService;



    public void methodA(){

         HelloWorldPojo payloadToSend = new HelloWorldPojo();
         payloadToSend.setId(123);
         payloadToSend.setName("whee");

         helloWorldService.callHelloWorld(payloadToSend);

   } 

}
//注意,我们没有在mp rest/url中包含/v1,为什么?因为它包含在@RestClient路径中

更新您的应用程序。属性以包括以下内容:

com.helloworld.services.HelloWorldService/mp-rest/url=https://yourOtherApplication.com/API 
---您将作为有效负载发送的HelloWorldPojo

HelloWorldProjo.java

package com.helloworld.services

@Path("/v1")
@RegisterRestClient
public interface HelloWorldService{

    @POST
    @Path("/helloworld")
    Response callHeloWorld(HelloWorldPojo payloadToSend);
}
@JsonPropertyOrder({"id", "name"})
public class HelloWorldProjo{

  private long id;
  private String name;

  //Setters
  //Getters

}
@RequestScoped
public class ServiceWhichCallsYourOtherAPI{


    @Inject
    @RestClient
    HelloWorldService helloWorldService;



    public void methodA(){

         HelloWorldPojo payloadToSend = new HelloWorldPojo();
         payloadToSend.setId(123);
         payloadToSend.setName("whee");

         helloWorldService.callHelloWorld(payloadToSend);

   } 

}
在另一个服务中,您实际希望使用此服务:

serviceswhichcallsyourotherapi.java

package com.helloworld.services

@Path("/v1")
@RegisterRestClient
public interface HelloWorldService{

    @POST
    @Path("/helloworld")
    Response callHeloWorld(HelloWorldPojo payloadToSend);
}
@JsonPropertyOrder({"id", "name"})
public class HelloWorldProjo{

  private long id;
  private String name;

  //Setters
  //Getters

}
@RequestScoped
public class ServiceWhichCallsYourOtherAPI{


    @Inject
    @RestClient
    HelloWorldService helloWorldService;



    public void methodA(){

         HelloWorldPojo payloadToSend = new HelloWorldPojo();
         payloadToSend.setId(123);
         payloadToSend.setName("whee");

         helloWorldService.callHelloWorld(payloadToSend);

   } 

}
然后,POST请求将转到

json将如下所示:

{
  "id":123,
  "name":"whee"
}

非常棒,请阅读:

嘿,伙计,首先谢谢你!!这个真的帮了我大忙。老实说,我在quarkus中很不正常-@RegisterRestClient似乎未被识别,我需要什么软件包?我将org.eclipse.microfile.rest.client添加到pom.xml中,但似乎没有任何帮助。有什么想法吗?再次感谢:)io.quarkus quarkus rest客户端io.quarkus quarkus rest客户端已修复!如果你不介意的话:我如何向这个POST请求添加一些简单的JSON?[抱歉在此聊天]我更新了方法以接收有效负载对象。简单的一个。希望这对你有帮助。很抱歉回复太晚-很好的更新。工作得很有魅力!非常感谢我的朋友:)嘿,伙计,首先谢谢你!!这个真的帮了我大忙。老实说,我在quarkus中很不正常-@RegisterRestClient似乎未被识别,我需要什么软件包?我将org.eclipse.microfile.rest.client添加到pom.xml中,但似乎没有任何帮助。有什么想法吗?再次感谢:)io.quarkus quarkus rest客户端io.quarkus quarkus rest客户端已修复!如果你不介意的话:我如何向这个POST请求添加一些简单的JSON?[抱歉在此聊天]我更新了方法以接收有效负载对象。简单的一个。希望这对你有帮助。很抱歉回复太晚-很好的更新。工作得很有魅力!非常感谢我的朋友:)