[英]Bad Request 400 and deserialization error while testing api using rest assured put method
[英]Rest assured testing - API request 401 bad request
我通過郵遞員或Java庫“ io.restassured”發送API請求時遇到問題。 當我在UI上執行相同的操作時,請求返回正確的響應,但是當我通過郵遞員或java代碼嘗試相同的操作時,我得到:
401錯誤的要求
你的瀏覽器發送了一個無效的請求。
Java代碼
public static void main(String[] args) {
String requestUrl = "exampleBaseUrl/app/reports/api/rest/v1/graphs?context=shipper&reports_type=freights";
Response response = RestAssured.given().relaxedHTTPSValidation().header("x-csrf-token", "18ea65e740eb0ddddadf0ef435d92564").
when().
get(requestUrl);
}
我認為身份驗證有問題,因為在開發工具中,我可以看到對CSRF_token的Get請求,它看起來像這樣:
令牌的端點:
/login?get_csrf_token
對於此請求,我得到以下響應:
{"csrf_token":"18ea65e740eb0ddddadf0ef435d92564"}
我不確定如何解決此問題,我還嘗試通過將get請求發送到令牌的端點/login?get_csrf_token
來通過Java代碼獲取令牌,而這得到了我的HTML響應,其中包含空的用戶名和密碼輸入。
錯誤401表示您的請求未被授權。
為了獲得授權,通常在登錄時會給您一個令牌,您必須將該令牌保存在高速緩存/本地內存中,並且每當與服務器通信時,都必須在請求標頭中添加該令牌(用於您自己對服務器的介紹) )
在您看來,您可以在/login?get_csrf_token
后從/login?get_csrf_token
獲取令牌。請注意,您不需要登錄服務的授權。
現在,從服務器獲取令牌后,如何將其添加為請求標頭? 請參閱REST保證文檔
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.