当前位置: 首页 > 知识库问答 >
问题:

Json正文给出错误代码400的HTTP POST请求

陈野
2023-03-14

我试图在Java中发送JSON格式的POST请求。

我尝试了很多来自internet和StackOverflow的代码,但都不起作用。

public class PostRequest {

    FileWriter myWriter;
    URL url;
    public void sendPost(String Url) throws IOException {
        
        String name = "{\"messageName\": \"URLFound\", \"businessKey\": \"3\"}";
        
        try {
            myWriter = new FileWriter("C:\\Users\\test\\Desktop\\camunda test save\\Post.txt");
            url = new URL ("http://localhost:8080/engine-rest" + Url);
            HttpURLConnection http = (HttpURLConnection)url.openConnection();
            
            http.setRequestMethod("POST");
            http.setDoOutput(true);
            http.setRequestProperty("Content-Type", "application/json");
            
            OutputStream os = http.getOutputStream();
            byte[] input = name.getBytes("utf-8");
            os.write(input, 0, input.length);
            
            BufferedReader in = new BufferedReader(new InputStreamReader(http.getInputStream()));
            StringBuffer response = new StringBuffer();
            while ((in.ready())) {
                response.append(in.readLine());
            }
            in.close();
            
            //Writing result on .txt
            myWriter.append(response.toString() + "\n" +url);

        }
        catch(Exception e){
            myWriter.append(e.toString());
        }
        myWriter.close();
        
        
    }
}

共有1个答案

钱运浩
2023-03-14

Java不能从JSON创建对象。检查是否所有字段都在后端所期望的java类的请求体中发送。

 类似资料:
  • 我正在为一个项目使用Hackerrank API。查看官方文档,点击这里! 在他们的网站上有一个使用UNIREST的例子, 由于我使用的是axios,所以我将其转换为类似的axios代码,如下所示: 我希望这只适用于示例中所示的示例,但它给我带来了以下错误: 请求失败,状态代码为400 错误:请求失败,状态代码为400 在createError(createError.js:16) 在sett(s

  • 我正在RestTemplate中使用exchange for GET方法。但是在exchange方法中传递requestEntity时,我得到了400个错误的请求。下面是我正在使用的代码。 生成URL: 我尝试从postman访问producer URL,其标题为Content-Type:Application/JSON,正文为{“firstName”:“a”,“lastName”:“b”,“da

  • 我一直在尝试使用集成到Codename one项目中的本机共享按钮,除了当我单击“发布”时,会出现“400:错误请求”错误。没有抛出异常,我的控制台中也没有堆栈跟踪。 代码: 另一个问题是,要共享的文本是不可见的。 截图

  • 问题内容: 我是django-1.6的新手。当我使用运行django服务器时,它运行良好。但是,当我改变DEBUG到False在设置文件,然后在服务器停止,并让在命令提示符下以下错误: 更改为之后,在浏览器中出现错误: 是否可以在没有调试模式的情况下运行Django? 问题答案: 该ALLOWED_HOSTS列表应包含标准主机名,而不是 URL。省略端口和协议。如果你使用127.0.0.1,我也将

  • 我正在使用Basecamp API,它是一个REST(JSON)API,使用HTTPS上的基本HTTP身份验证。 这应该是一个GET请求,但当我使用GET运行我的代码时,我收到了: 无法发送包含此谓词类型的内容正文 当我将其作为POST运行时,我会收到: {“状态”:“400”,“错误”:“错误的请求”} 有谁知道为什么会发生这种情况? 在此代码中,我显然交换了用户名,密码,项目名称和URL,但在

  • 我试图张贴用户详细信息,使用POJO类在数据库中创建新用户。API接受原始JSON作为发布请求。我收到的响应是响应{协议=超文本传输协议/1.1,代码=400,消息=,url=我的api url} 我正在使用POJO类CreateUser为我的用户创建详细信息,并将其传递给改型API接口 我的API定义如下,CreateUserResponse是用于存储改装响应的响应POJO类 } 我的改装客户端