gpt4 book ai didi

java - 404 访问 https URL 时出错 - Java,但使用 POSTMAN 或 SOAPUI 工作正常

转载 作者:行者123 更新时间:2023-12-02 10:34:27 24 4
gpt4 key购买 nike

11 月 21 日编辑:我尝试过使用浏览器直接访问 URL,它给出了相同的 404 错误响应。但是在检查 postman 代码时,我可以看到调用如下。那么有人可以让我知道如何以同样的方式发送电话吗?谢谢

POST/api/test/PW/authentication/user HTTP/1.1

主机:www.hostname.comX-API- key :saksj82kqjsak290d

缓存控制:无缓存

postman token :2b7fl871-195a-4782-9000-6ce269242704

内容类型:multipart/form-data;boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

内容处置:表单数据;名称=“凭据”

用户123

内容处置:表单数据;名称=“密码”

通过123------WebKitFormBoundary7MA4YWxkTrZu0gW--

原始消息:我在使用 Java 代码从 https Rest APi 获取 token 时遇到问题。请求网址:https://www.hostname.com/api/test/PW/authentication/user curl :curl -X POST --header '内容类型:application/x-www-form-urlencoded' --header '接受:application/json' --header 'ApiKey:saksj82kqjsak290d -d 'userid=user123&password=pass123 ' ' https://www.hostname.com/api/test/PW/authentication/user '方法:POST

一旦我发送帖子请求,我将获得 JSON 格式的 header 值中的 token 。但是在 ping 服务器时,我收到来自 Java 的 404 响应。但是使用 POSTMAN 工具,我得到的响应为 200,并且响应 header 数据中有正确的标记。

注意:我已将此处的 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);
}
}
}

最佳答案

在Java代码中,主体数据是json,但在curl命令中,您传递格式为x-www-form-urlencoded的用户ID和密码。最有可能的是,该服务期望后者,因此当您将其作为前者传递时,它无法获得正确的值。

关于java - 404 访问 https URL 时出错 - Java,但使用 POSTMAN 或 SOAPUI 工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53388930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com