因为这种类型的问题已经被问了很多次,但我不知道,在我的情况下发生了什么。我已经在Spring启动中创建了一个服务。在邮递员中测试时,它工作正常,但当我在AsynchWG的Android系统中尝试同样的事情时,它正在抛出异常。谁能帮我解决这个问题。谢谢
下面是spring boot中的服务
@RequestMapping(path="/sellerRegistration", method = RequestMethod.POST,
consumes = "application/json")
public String doSellerRegistration(@RequestBody SellerModel sModel) {
int insertCount = uDao.sellerRegistrations(sModel.getShopName(), sModel.getLocalAreaName(), sModel.getAddress(), sModel.getMobileNo(), sModel.getPassword());
System.out.println("inside seller registration");
if (insertCount > 0) {
return "1";
} else {
return "0";
}
}
然后我在Android中创建了一个方法,并从我的活动中的AsynchTask doInBackground()方法调用这个方法。
public static String getJSONResponse(String url, String postData){
String result = "";
BufferedReader reader = null;
StringBuilder stringBuilder;
Log.i("Rest url..", url);
Log.i("Rest postData..", postData);
try{
URL myURL = new URL(url);
HttpURLConnection myURLConnection = (HttpURLConnection)myURL.openConnection();
myURLConnection.setRequestMethod("POST");
myURLConnection.setRequestProperty("Content-Type", "application/json");
myURLConnection.setRequestProperty("Content-Language", "en-US");
myURLConnection.setUseCaches(false);
myURLConnection.setDoInput(true);
myURLConnection.setDoOutput(true);
Log.i("Rest myURLConnection..", ""+myURLConnection);
DataOutputStream wr = new DataOutputStream (myURLConnection.getOutputStream ());
wr.writeBytes (postData);
wr.flush ();
wr.close ();
reader = new BufferedReader(new InputStreamReader(myURLConnection.getInputStream()));
stringBuilder = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null)
{
stringBuilder.append(line + "\n");
}
result = stringBuilder.toString();
Log.i("REST result....", ""+result);
} catch (Exception e) {
Log.e("Rest service Task", e.getMessage(), e);
}
return result;
}
这是我打电话的密码
@Override
protected String doInBackground(String... strings) {
String shopName = "SomeShopName";
String url = "http://192.168.43.166:2020/OnlineGroceryMarket/users/sellerRegistration?shopName="+shopName;
String response = GroceryRestService.getJSONResponse(url, "");
return response;
}
这是扔给我的错误,就像下面在Spring启动的情况下,但当在邮递员调用它的工作非常好。
2018-05-06 12:38:31.102 WARN 8204 --- [nio-2020-exec-1]
.w.s.m.s.DefaultHandlerExceptionResolver : Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public java.lang.String com.mangal.grocerymarket.user.controller.UsersController.doSellerRegistration(com.mangal.grocerymarket.user.model.SellerModel)
2018-05-06 12:38:31.102 WARN 8204 --- [nio-2020-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved exception caused by Handler execution: org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public java.lang.String com.mangal.grocerymarket.user.controller.UsersController.doSellerRegistration(com.mangal.grocerymarket.user.model.SellerModel)
在写入DataOutputStream
之前,您应该编码您的postData
,并且还应该更新以下行
myURLConnection.setRequestProperty("Content-Type", "application/json");
用这个
myURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
如果不起作用,请按如下方式更新您的URL
http://192.168.43.166:2020/OnlineGroceryMarket/users/sellerRegistration/
也许试着改变
wr.writeBytes (postData);
到
wr.writeBytes (postData.getBytes("UTF-8"));
我想通过邮递员上传一个图像到我的Rest API。我使用的是Spring Boot框架。以下是屏幕截图: 我也没有设置任何头部,因为我在其他堆栈溢出答案中发现,它给出了多部分边界错误。 下面是我的控制器代码: 现在,我将使用一个产品对象,该对象内部包含一个定义为Byte[]数组的图像。我把它作为字符串和图像分开作为多部分文件。 下面是我定义的产品类属性: 因为,我使用的是spring boot,这
我有一个邮递员预请求脚本添加一个HMAC密钥到一个请求。除非身体中有一个环境变量,否则这种方法很有效。所以如果我有下面的身体 当发送请求时将键值设置为sample时,正文包含以下内容 这是我所期望的。但是,在访问预请求脚本中的请求正文时, 我得到以下信息 我怎样才能获得变量被替换的主体,以便它是将被发送到服务器的内容?
我有一个 POST 请求,用于验证请求正文中的文本/csv 文件。请求在邮递员中成功运行:返回 HTTP 代码 200。Postman 控制台中的请求正文填充了文件路径和名称,即 src:“/Users/username/Downloads/demo_file.csv”,但是当导出集合时,请求中的文件值为空。见下文。 问题。为什么它是空的,这是一个错误/已知问题吗? 作为一个快速测试,我将文件添加
问题内容: 将JSON数据从JSP传递到ResponseBody中的控制器时出错。 Ajax电话: 控制器: AppConfig.java @豆 请帮助我摆脱困境。我正在使用Spring 4,Jakson 2.3.0 如果我尝试POST请求,它将给出:org.springframework.web.HttpRequestMethodNotSupportedException:请求方法’POST’不
我正在尝试设置邮递员预请求,以便在向服务发出每个请求之前获取 OAuth 令牌。 我尝试遵循与此相关的各种示例和指南,每个示例和指南似乎都非常简单,尽管由于预请求脚本失败,我的脚本仍然存在问题。 恐怕这在某种程度上与这样一个事实有关,即我需要调用的endpoint来获取令牌是在超文本传输协议上,而不是在https上,因为在Postman控制台中,我总是收到对同一个url的两个单独的请求,一个在ht
我创建了基于Web的应用程序示例:Angular的前端和spring boot mer客户的后端)Angular URL:http://localhost:4200/spring boot URL:http://localhost:9020/(REST:http://localhost:9020/API/) . . 应用程序.属性: > server.port=9020 spring.dataso