HttpURLConnection发布方法问题

时间:2018-07-26 09:03:10

标签: java post httpurlconnection

我在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方法,并且工作正常。

希望您能在此方面为我提供帮助。

0 个答案:

没有答案