如何使用Rest Assured with POST方法获取REST API端点的访问令牌,目前我收到404错误?

时间:2017-12-07 12:55:00

标签: java rest-assured rest-assured-jsonpath

我正在尝试运行POST方法以使用REST Assured Code获取访问令牌。但它返回404错误。我的代码如下。 POSTMAN配置如下同样尝试使用Rest Assured

进行复制
Method : POST

Authorization tab: 
             Type : Basic Auth 
             UserName :  ABCD
             Passsowrd : Test@1234

Body Tab : 
           Selecting  "application/x-www-form-urlencode" Radio Button
           Key : grant_type  Value : Client_Credentials
           Key : Scope       value : ABCDAPI


given().auth().basic("Username Here","Password type here")
.header("Authorization", "Basic T1VUUkVBQ0hfQVBJX0NMSUVOVDpIWmRwREwydkR5UE5iQmtvWEdxSkFpK1Qxa08yWSszNndxQXhoYTVXUWhZPQ==n")
.header("Content-Type","application/x-www-form-urlencoded")         
.contentType("application/x-www-form-urlencoded")
.body("[{\"grant_type\":\"client_credentials\"}]")
.body("[{\"scope\":\"ABCDpi\"}]").when()            
.post("https://ABCD.KLM.id.XYZ-Cloud.net/oauth2/access_token?realm=PQR")            
.then().contentType("").statusCode(200);

我还附上Postman工作的屏幕截图enter image description here

2 个答案:

答案 0 :(得分:1)

在尝试以下代码之前,请给自己一些时间来查看here

同样application/x-www-form-urlencoded将其POST变量存储为正文中的键值对。

given().auth().basic(username, password)
.header("Content-Type","application/x-www-form-urlencoded")
.formParam("grant_type", "client_credentials")
.formParam("scope", "ABCDpi")
.post("https://ABCD.KLM.id.XYZ-Cloud.net/oauth2/access_token?realm=PQR")
.then().contentType("").statusCode(200);

答案 1 :(得分:0)

我看到了您的代码问题以及像您这样的问题。而且我认为找到一种解决我们问题的方法。 如果更改以下几行,则可能会起作用:

.body("[{\"grant_type\":\"client_credentials\"}]")
.body("[{\"scope\":\"ABCDpi\"}]").when()

为此:

.body("grant_type=client_credentials&scope=ABCDpi")

我希望能有所帮助。