Изменить 21 ноября: Я пытался получить прямой доступ к URL-адресу через браузер, он выдает мне тот же 404 ответ об ошибке.Но при проверке в POSTMAN-коде я мог видеть, что вызов идет, как показано ниже.Так может кто-нибудь, пожалуйста, дайте мне знать, как отправить вызов в тот же путь?спасибо
POST / api / test / PW / аутентификация / пользователь HTTP / 1.1
Хост: www.hostname.com X-API-Key: saksj82kqjsak290d
контроль кэша: no-cache
Почтальон-токен: 2b7fl871-195a-4782-9000-6ce269242704
Тип содержимого: multipart / form-data; border = ---- WebKitFormBoundary7MA4YWxkTrZu0gW
Содержание-Расположение: форма-данные;имя = "учетные данные"
user123
Content-Disposition: form-data;name = "password"
pass123 ------ WebKitFormBoundary7MA4YWxkTrZu0gW -
Исходное сообщение: У меня возникла проблема при получении токена из APT https Rest с использованием Javaкод.URL запроса: https://www.hostname.com/api/test/PW/authentication/user Curl: curl -X POST --header 'Content-Type: application / x-www-form-urlencoded' --header 'Accept: application / json' --header 'ApiKey: saksj82kqjsak290d -d' userid = user123 & password = pass123 '' https://www.hostname.com/api/test/PW/authentication/user' Метод: POST
Как только я отправлю запрос, я получу токен в значениях заголовка в формате JSON.Но пока я пингую сервер, я получаю 404 ответа от Java.Но с помощью инструмента POSTMAN я получаю ответ как 200 с соответствующим токеном в данных заголовка ответа.
Примечание: я изменил URL-адрес здесь на некоторый фиктивный.
До сих пор я пробовал какниже и не уверен, где я ошибся.
import java.net.*;
import java.io.*;
import java.util.*;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.CookieHandler;
import java.net.CookieManager;
import java.net.URL;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.net.HttpuConnection;
import javax.net.ssl.HttpsuConnection;
import java.lang.annotation.Retention;
import java.net.MalformedURLException;
public class Tokenhttps {
public static void main(String[] args) throws MalformedURLException {
int code;
String httpsurl = "https://www.hostname.com/api/test/PW/authentication/user";
String KeytoPass = "saksj82kqjsak290d";
try{
URL httpurl = new URL(httpsurl);
HttpuConnection uConnect = (HttpuConnection) httpurl.openConnection();
//Set header
uConnect.setDoOutput(true);
uConnect.setRequestMethod("POST");
urlConnect.setRequestProperty("Content-type", "application/x-www-form-urlencoded");
uConnect.setRequestProperty("Accept", "application/json");
uConnect.setRequestProperty("ApiKey", KeytoPass);
//Set body
String bodydata ="{\"userid\":\"user123\",\"password\":\"pass123\"}";
//POST
DataOutputStream dos = new DataOutputStream (uConnect.getOutputStream ());
dos.write(bodydata.getBytes());
dos.flush();
// Read the response.
InputStreamReader isr = null;
code = uConnect.getResponseCode();
System.out.println("responseCode:" + code );
if (code == 200) {
System.out.println("Connection is Success" );
isr = new InputStreamReader(uConnect.getInputStream());
//Print Header Fields
System.out.println("HeaderValues :"+uConnect.getHeaderFields ());
}
else {
isr = new InputStreamReader(uConnect.getErrorStream());
}
}
catch(Exception errormsg){
System.out.println("Error: " +errormsg);
}
}
}