- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的.NET应用程序中有这个类,用于将一些数据从客户端(.NET)发送到服务器(Spring):
class NetworkController
{
private static readonly HttpClient client = new HttpClient();
public static async Task SendUserDataAsync()
{
var values = new Dictionary<string, string>
{
{ "firstName", "sunny" },
{ "lastName", "leone" },
{ "timeStamp", "test" }
};
var content = new FormUrlEncodedContent(values);
var response = await client.PostAsync("http://localhost:8080/user", content);
var responseString = await response.Content.ReadAsStringAsync();
}
}
在我的 Spring Boot 应用程序中,我有一个名为 User
的类:
@Entity
public class User
{
@Id
private String firstName;
private String lastName;
private String timeStamp;
public User(){}
@Override
public String toString() {
return "firstName : "+this.firstName + "\n"+"lastName : " + this.lastName;
}
}
在我的rest-controller中,我有这个方法来插入User
:
@PostMapping("/user")
User addUser(@RequestBody User user)
{
System.out.println(user);//this always prints an empty line, maybe receiving nothing
return userRepository.save(user);
}
我收到此警告已解决 [org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded;charset=UTF-8' not support]
我在.NET中创建了这个类(带有Spring的概念),但似乎没有用:
class User
{
String firstName;
String lastName;
String timeStamp;
public User()
{
firstName = "1"
lastName = "2"
timeStamp = "test"
}
}
发送对象而不是字典不是更温和、更整洁吗?如何做到这一点?
如何解决这个问题?
最佳答案
在您的 .NET 应用程序中,var content = new FormUrlEncodedContent(values);
行表示请求的 HTTP header Content-Type
设置为 application/x-www-form-urlencoded
。
这意味着存储在 var value = new Dictionary...
中的数据将被 .NET 格式化为查询字符串,例如 firstName=sunny&lastName= leone&timeStamp=测试
。
这就是您的 Sprint 服务器收到的内容。但是它想要接收 JSON 数据,而不是查询字符串。所以它提示。
为了消除错误通信,您的 .NET 应用程序应该发送 JSON 数据,例如{"firstName": "sunny", "lastName": "leone", "timeStamp": "test"}
,正如 Spring 服务器所期望的那样。
这里是一个示例代码:
HttpClient client = new HttpClient();
object anonymousObject = new
{
firstName = "sunny",
lastName = "leone",
timeStamp = "test"
};
string jsonContent = JsonConvert.SerializeObject(anonymousObject);
var request = new HttpRequestMessage(HttpMethod.Post, "http://127.0.0.1:8080/user");
request.Content = new StringContent(jsonContent, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
您需要安装Newtonsoft.Json包才能调用JsonConvert.SerializeObject(anonymousObject)
,如this SO answer所示@alfcope 提到过。
关于java - HttpMediaTypeNotSupportedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59214285/
我的.NET应用程序中有这个类,用于将一些数据从客户端(.NET)发送到服务器(Spring): class NetworkController { private s
我目前正在绞尽脑汁想知道为什么包含参数 @RequestBody Car car 会破坏我的终点。 我对 Spring Boot 非常陌生,并尝试将 json 字符串发布到我的 rest Contro
我的 Controller 上的休息和方法发布有问题,我有这2个类,第一个是我的类用户中的用户,我的类有getter和setter以及默认构造函数,因为最后我想使用Hibernate .: @Enti
我在一个类中设置了一个简单的 Spring REST 方法,该方法应该只返回在 POST 请求中发送给它的文本作为响应。我在类 MyService.java 中的方法: @RequestMapping
我正在尝试在 spring 框架中测试 POST 方法,但我一直收到错误。 我第一次尝试这个测试: this.mockMvc.perform(post("/rest/tests").
我正在测试 api 端点,MockMvc 抛出 org.springframework.web.HttpMediaTypeNotSupportedException 预期状态: 但为:阅读有关类似问题
我在尝试测试 Json Controller 时遇到以下异常 org.springframework.web.HttpMediaTypeNotSupportedException。 Controlle
我有一个带有以下 Post 代码的 RestController,并尝试在我的 AJAX 中使用它在数据库表中添加数据。我有以下错误。 RestController 方法发布 @RequestMapp
我收到以下异常: org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/json'
大家好,请建议我如何解决这个问题我正在尝试使用休息网络服务请参阅下面的代码 import java.sql.ResultSet; import java.util.Date; import java.
由于 Jackson 尝试反序列化我的 POJO 时出现问题,我收到上述错误。 我已经调试了代码,它在 Jackson 的 ObjectMapper 中返回 false: public boolean
我尝试发送 PUT 请求。我有serialazible类和具有必要设置的 Controller ,我的请求有contentType:“application/json”。 目的地航类: public
我是 Spring Data 的新手。我不断收到错误:org.springframework.web.HttpMediaTypeNotSupportedException: Content type
当我调用休息服务时,我遇到了以下异常。 org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'applic
我正在处理 Spring Boot MySQL 示例,链接如下: https://www.callicoder.com/spring-boot-rest-api-tutorial-with-mysql
我在 spring 集成测试中遇到了一个奇怪的问题。我有一个在 tomcat 上运行的工作 Controller 和应用程序。但是在我的集成测试中,我得到以下堆栈跟踪: org.springframe
我是一名优秀的程序员,十分优秀!