我不知道爲什麼,但是我對Vertx所做的文章根本不起作用。所有的時間錯誤是404.
與純Java使用相同的鏈接和主體,並且我得到了來自服務器的響應。我做錯了什麼?Vertx POST不起作用 - >錯誤404
HttpClient client = vertx.createHttpClient();
HttpClientRequest request =
client.post("https://login.windows.net/common/oauth2/token").handler(res->{
System.out.println(res.statusCode());
}).putHeader(HttpHeaders.CONTENT_LENGTH,String.valueOf(buffer.length()))
.putHeader(HttpHeaders.CONTENT_TYPE,"application/x-www-form-urlencoded").write(buffer);
request.end();
我基本上是做身份驗證Azure以及對響應我應該得到與令牌和其他信息一個JSON。使用純Java可行,但我們需要使它與Vertx一起工作。
編輯 - 此代碼的工作 - 我得到JSON回來,但不是vertx
String url = "https://login.microsoftonline.com/common/oauth2/token";
URL obj = null;
obj = new URL(url);
HttpsURLConnection con = null;
con = (HttpsURLConnection) obj.openConnection();
//add reuqest header
con.setRequestMethod("POST");
con.setRequestProperty("User-Agent", USER_AGENT);
con.setRequestProperty("Host", "login.microsoftonline.com");
con.setRequestProperty("Cache-Control", "no-cache");
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
// Send post request
con.setDoOutput(true);
DataOutputStream wr = null;
wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(urlParameters);
wr.flush();
wr.close();
int responseCode = 0;
responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Post parameters : " + urlParameters);
System.out.println("Response Code : " + responseCode);
BufferedReader in = null;
in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
//print result
System.out.println(response.toString());
您可以編輯您的問題以顯示您的代碼與JDK HttpClient,以便我們可以比較嗎? – tsegismont
你到底在哪裏得到404?你是否從'login.windows.net'獲得了這個結果? –
System.out.println(res.statusCode());給我404,但我不知道如果請求甚至來到login.windows.net ....我不知道它是否甚至發送到我的網絡之外。 – user155293