HttpURLConnection发布方法问题

问题描述 投票:1回答:1

我在post方法中对HttpURLConnection遇到问题。当我尝试使用Post方法时,在get方法上一切正常。我收到此错误消息。线程“主”中的异常java.io.IOException:服务器返回的HTTP响应代码:URL的403

这是我的代码段。希望您能对此有所帮助。

URL url = new URL(my url/userInfo);
    String encoding = Base64.getEncoder().encodeToString(("username:password").getBytes("UTF-8"));


    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setRequestMethod("GET");
    connection.setDoOutput(true);
    connection.setRequestProperty("Content-Type", "text/plain");
    connection.setRequestProperty("Authorization", "Basic " + encoding);
    connection.setRequestProperty("x-csrf-token", "fetch");
    String csrfToken = connection.getHeaderField("x-csrf-token");

    BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
    String inputLine;
    String output = in.readLine();

    in.close();

    String content = data   // expected data to retrieve


    URL url2 = new URL(my URL);//another url to push the data retrieve
    HttpURLConnection connection2 = (HttpsURLConnection) url2.openConnection();

    connection2.setDoInput(true);
    connection2.setDoOutput(true);
    connection2.setRequestMethod("POST");
    connection2.setRequestProperty("Authorization", "Basic " + encoding);
    connection2.setRequestProperty("Accept", "application/json");
    connection2.setRequestProperty("x-CSRFToken", csrfToken);
    connection2.setRequestProperty("cache-control", "no-cache");
    OutputStream os = connection2.getOutputStream();


    OutputStreamWriter osw = new OutputStreamWriter(os, "UTF-8");


    osw.write(data);//this is where the data will be pushed

    osw.flush();
    osw.close();
    os.close();

想法是,我们首先需要从第一个链接获取x-csrf令牌和数据,这没关系。执行GET方法后,将发生POST方法。不幸的是,post方法不起作用。我收到上面显示的错误消息。顺便说一下,我们尝试在POSTMAN中执行一个post方法,它工作正常。

希望您可以为此提供帮助。

java post httpurlconnection
1个回答
0
投票

我们对此有答案吗?我在同一个问题上挣扎。能够成功地通过邮递员投递,但无法使用Java代码投递。有人可以帮忙吗。

© www.soinside.com 2019 - 2024. All rights reserved.