Java - 使用套接字的请求给出 403 响应

标签 java sockets

下面的代码给出了 403 错误。但我的请求适用于 localhost:8080,但不适用于代码中提到的 url。标题中的网址和文件夹完全正确,但我不明白问题出在哪里

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.URL;
import java.net.URLEncoder;

public class Main 
{
    public static void main(String[] args)
    {
        try
        {
            String data = URLEncoder.encode("name","UTF-8")+"="+URLEncoder.encode("parsa1234","UTF-8");
            Socket s = new Socket("ramsari.com",80);
            BufferedReader reader = new BufferedReader(new InputStreamReader(s.getInputStream()));
            BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(s.getOutputStream(),"UTF-8"));
            writer.write("POST /help/index.php HTTP/1.0\r\n");
            writer.write("content-length:"+data.length()+"\r\n");
            writer.write("Content-Type:application/x-www-form-urlencoded\r\n");
            writer.write("\r\n");
            writer.write(data);
            writer.flush();
            String c = "";
            while((c = reader.readLine()) != null)
            {
                System.out.println(c);
            }
            writer.close();
            reader.close();


        }
        catch(IOException e)
        {
            e.printStackTrace();
        }
    }
}

这是我在 ramsari.com/help/index.php 上的代码

<?php
if(isset($_POST['name']))
{
    echo $_POST['name'];
}
else
{
    echo "error";
}

这是来自 url 的响应

HTTP/1.1 403 Forbidden
Server: nginx/1.12.1 (Ubuntu)
Date: Mon, 26 Mar 2018 15:08:38 GMT
Content-Type: text/html
Content-Length: 162
Connection: close

<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx</center>
</body>
</html>

最佳答案

403 Forbidden 状态意味着您没有提供服务器期望的某些凭据。也就是说,您尝试访问的服务器希望您表明自己的身份,提供一些身份证明,然后拥有对 URL 标识的资源的权限。

关于Java - 使用套接字的请求给出 403 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49494919/

相关文章:

java - 在网格首次附加后为网格单元添加(悬停)监听器

java - 如何从Java GUI数据更新spring属性值?

java - 类级锁定 - 效率如何?

javascript - 将用户推送到数组时,会创建多个数组

sockets - 使用Chrome应用程序套接字API检测远程计算机上的端口是否打开

java - 渲染 10x10 立方体 openGl 1.0 es

java - 在 spring boot 中重新加载/刷新缓存

c - 如何同时从标准输入和套接字进行轮询?

c++ - 使用 Boost.Asio 只读取所需的字节数

java - 如何通过socket java发送列表