Tag: http status code 400

AngularJS中的文件上载JSON Spring MVC应用程序400错误请求所需的请求部分不存在

我们使用的是AngularJS 1.5.8,Spring 3.2.17,Jackson 2.6.7; 我们需要使用JSON DTO对象实现文件上传。 我们无法看到使用多种配置和方法的文件上传成功,单独的DTO作为json请求参数工作正常。 提前致谢! bill_payment.html的片段 app.js var app = angular.module(‘app’, [ ‘ngRoute’, ‘ngResource’, ‘billPaymentAppControllers’, ‘billPaymentAppServices’ ]); … app.directive(‘fileModel’, [‘$parse’, function ($parse) { return { restrict: ‘A’, link: function(scope, element, attrs) { var model = $parse(attrs.fileModel); var modelSetter = model.assign; element.bind(‘change’, function(){ scope.$apply(function(){ modelSetter(scope, element[0].files[0]); }); }); } }; }]); billPaymentControllers.js var […]

SpringformsModelAttribute字段validation,以避免400 Bad Request Error

我有一个ArticleFormModel包含由普通html form发送的数据,由Spring使用@ModelAttribute注释注入,即 @RequestMapping(value=”edit”, method=RequestMethod.POST) public ModelAndView acceptEdit(@ModelAttribute ArticleFormModel model, HttpServletRequest request, BindingResult errors) { //irrelevant stuff } 在某些方面,一切都很完美。 问题是ArticleFormModel包含一个double字段( protected ,使用普通的setter设置)。 只要用户发送的数据是数字,一切正常。 当他们输入一个单词时,我得到的就是400 Bad Request Http Error 。 我已经为这个控制器注册了一个WebDataBinder @InitBinder protected void initBinder(WebDataBinder binder) throws ServletException { binder.setValidator(validator); } 其中validator是实现org.springframework.validation.Validator接口的自定义类的实例,但我不知道接下来该做什么。 我希望能够解析模型,获得有效的HTTP响应并在表单中显示错误消息。 调用initBinder()方法,我可以从中调用validator.validate() ,但它不会更改错误(对于错误的数据)。 我知道我可以使用setter来解析字符串,检查它是否为数字,如果没有,将该信息存储在变量中,然后在validation期间检索该变量,但这似乎太多了。 必须有一种更简单的方法来强制字段上的类型而不会出现错误。 此外,问题是数据绑定,而不是validation,所以我觉得它应该放在相应的代码层。 我也在考虑实现java.beans.PropertyEditor并调用binder.registerCustomEditor() ,但我缺乏可靠的知识源。 客户端validation(通过JavaScript检查数据是否为数字)是不可能的。 TL; DR: 如何在不获取400 Bad Request Http […]

POST期间REST Web服务中的HTTP 400错误,FormParam包含自己的对象(例如enities)

对于我的REST服务中的订购流程,我必须从客户端向服务器发送“文章”列表。 这些文章对象是自制的实体类型。 我已经发现发送STRING或INTEGER对象列表确实有效,通过@FormParam发送它。 但是一旦我尝试发送我自己的对象列表(甚至只有一个对象),我总是得到HTTP 400错误“错误请求” 。 我疯狂地尝试了类似下面的代码(只有form.add()的参数和服务器方法的参数被更改)和postet字符串,整数和字符串列表成功。 它只会导致发送自己的对象类型的问题。 记录告诉我没有达到服务器方法。 这个过程在某个地方被打破了。 我还试图通过使用代理(Apache JMeter)来获取请求。 这里它表示参数kunde包含值entities.Kunde%40af8358 。 所以我猜这个对象没有彻底序列化(或根本没有)。 但是在响应中将这种对象从服务器发送到客户端工作正常 – 这里XML序列化没有问题。 可能是什么原因? 是否可能无法通过POST发送自己的类型? (PS:我的示例中的@XmlRootElement类型是可序列化的,并使用@XmlRootElement注释。) 预先感谢您的帮助! 贾纳 注意 :我正在使用SAP Netweaver AS。 但直到现在它的表现与其他所有Java AS一样,所以我认为这不是原因。 每个其他REST操作都可以工作,甚至没有自己的实体的POST。 另外 :我正在使用JERSEY库。 服务器端的我的代码: @Path(“/test”) @POST @Produces(MediaType.TEXT_XML) @Consumes(MediaType.APPLICATION_FORM_URLENCODED) public String test( @FormParam(“kunde”) Kunde kunde) { return “The name of the customer is: ” +kunde.getVorname()+” “+kunde.getNachname(); } […]

服务器返回HTTP响应代码:400

我试图从URL获取InputStream。 该URL可以从Firefox打开。 它返回一个json,我已经在Firefox中安装了一个用于查看json的插件,所以我可以在那里查看它。 所以我试图通过以下方式从Java中获取它: URL url = new URL(urlString); URLConnection urlConnection = url.openConnection(); BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); 但它在urlConnection.getInputStream()中抛出IOException。 我也尝试过: HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); InputStream inputStream = url.openStream(); 但没有运气。 任何信息都很明显。 提前致谢。

如何在Java中向REST API发送Request有效负载?

我想从以下内容中检索JSON数据: https : //git.eclipse.org/r/#/c/11376/ 请求URL: https://git.eclipse.org/r/gerrit/rpc/ChangeDetailService : https://git.eclipse.org/r/gerrit/rpc/ChangeDetailService 请求方法: POST 请求标题: Accept:application/json Content-Type:application/json; charset=UTF-8 请求有效负载: {“jsonrpc”:”2.0″,”method”:”changeDetail”,”params”:[{“id”:11376}],”id”:1} 我已经尝试过这个答案,但我得到400 BAD REQUEST 。 任何人都可以帮我解决这个问题吗? 谢谢。