Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Http POST未按预期工作?_Java_Minecraft - Fatal编程技术网

Java Http POST未按预期工作?

Java Http POST未按预期工作?,java,minecraft,Java,Minecraft,我试图发送一些数据到一个url与一些张贴数据。我尝试了以下代码:- try { // Construct data String data = URLEncoder.encode("appid", "UTF-8") + "=" + URLEncoder.encode("2", "UTF-8"); data += "&" + URLEncoder.encode("secret", "UTF-8") + "=" + URLEncoder.enc

我试图发送一些数据到一个url与一些张贴数据。我尝试了以下代码:-

try {
        // Construct data
        String data = URLEncoder.encode("appid", "UTF-8") + "=" + URLEncoder.encode("2", "UTF-8");
        data += "&" + URLEncoder.encode("secret", "UTF-8") + "=" + URLEncoder.encode("APPSECRET", "UTF-8");
        data += "&" + URLEncoder.encode("usermcaccount", "UTF-8") + "=" + URLEncoder.encode("NAME", "UTF-8");
        data += "&" + URLEncoder.encode("actiontype", "UTF-8") + "=" + URLEncoder.encode("ACTION", "UTF-8");
        data += "&" + URLEncoder.encode("serverip", "UTF-8") + "=" + URLEncoder.encode("IP", "UTF-8");


        // Send data
        URL url = new URL("http://maiacraft.com/api/");
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setDoInput(true);
        conn.setRequestMethod("POST");
        DataOutputStream outStream;


        OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());

        //write parameters
        writer.write(data);
        writer.flush();
        writer.close();




    } catch (Exception e) {
    }
但它似乎并没有将其发布到服务器上。所有服务器端代码都在工作,因为它允许来自另一个页面的post请求,但不允许来自此java代码

有什么想法吗

有什么想法吗

  • 您没有检查HTTP响应状态。这将为你提供一些关于到底出了什么问题的线索。响应状态可以表示各种事物;e、 你的请求参数错误,URL错误,你没有权限,你需要登录,服务器关闭,等等

  • 如果您得到一个非2xx响应代码,那么响应正文中可能会有更多信息。您可以通过打开并读取连接对象的错误流来访问它

  • 检查服务器日志

  • 尝试使用web浏览器或类似于
    curl
    wget
    的实用程序提交相同的请求。(将POST参数放入文件…或将其附加到URL。)

  • 捕获并仔细检查Java程序实际发送的编码POST数据。您可以修改程序以在发送数据之前打印数据,也可以使用Wireshark(或等效工具)在线读取请求。捕获数据后,请仔细将其与HTML规范中关于表单数据编码的内容进行比较;看

  • 最后,您没有在请求中设置内容类型头。这很可能导致服务器忽略POST数据。请阅读HTTP规范以了解应设置的头的说明。(在这种情况下,您应该使用由mime类型“application/x-www-form-urlencoded”和您正在使用的内容编码——“UTF-8”;请参阅)组成的内容类型


  • 我不会在代码示例的末尾提到异常挤压讨厌的

    哎呀。我刚刚做到了:-)

    有什么想法吗

  • 您没有检查HTTP响应状态。这将为你提供一些关于到底出了什么问题的线索。响应状态可以表示各种事物;e、 你的请求参数错误,URL错误,你没有权限,你需要登录,服务器关闭,等等

  • 如果您得到一个非2xx响应代码,那么响应正文中可能会有更多信息。您可以通过打开并读取连接对象的错误流来访问它

  • 检查服务器日志

  • 尝试使用web浏览器或类似于
    curl
    wget
    的实用程序提交相同的请求。(将POST参数放入文件…或将其附加到URL。)

  • 捕获并仔细检查Java程序实际发送的编码POST数据。您可以修改程序以在发送数据之前打印数据,也可以使用Wireshark(或等效工具)在线读取请求。捕获数据后,请仔细将其与HTML规范中关于表单数据编码的内容进行比较;看

  • 最后,您没有在请求中设置内容类型头。这很可能导致服务器忽略POST数据。请阅读HTTP规范以了解应设置的头的说明。(在这种情况下,您应该使用由mime类型“application/x-www-form-urlencoded”和您正在使用的内容编码——“UTF-8”;请参阅)组成的内容类型


  • 我不会在代码示例的末尾提到异常挤压讨厌的


    哎呀。我刚做了:-)

    我会从记录任何异常开始。根据您可能想要查看的代码检查响应代码和inputStream/errorStream。捕获您使用tcpdump或Wireshark发送的内容。我会从记录任何异常开始。根据您需要的代码检查响应代码和inputStream/errorStream可能需要查看。捕获您使用tcpdump或Wireshark发送的内容。