C# ServiceStack-将HttpStatus返回到Android设备
我一直在使用ServiceStack创建一个Android设备可以与之通信的REST服务-到目前为止,我可以将DTO发布到REST服务,它成功地保存了。。。我遇到的麻烦是发回一个返回状态来通知android应用程序发生了什么C# ServiceStack-将HttpStatus返回到Android设备,c#,android,rest,
servicestack,C#,Android,Rest,
servicestack,我一直在使用ServiceStack创建一个Android设备可以与之通信的REST服务-到目前为止,我可以将DTO发布到REST服务,它成功地保存了。。。我遇到的麻烦是发回一个返回状态来通知android应用程序发生了什么 ResponseEntity <HttpStatus> responseEntity = restTemplate .exchange (requestUrl,
ResponseEntity <HttpStatus> responseEntity = restTemplate
.exchange (requestUrl,
HttpMethod.POST,
requestEntity,
HttpStatus.class);
/* Never gets to this bit, always throws a runtime exception */
Log.i (TAG, "responseEntity.getStatusCode () --> '" + responseEntity.getStatusCode () + "'");
return responseEntity.getStatusCode ();
即使只是使用一个简单的“return-HttpStatus.OK”,我的android应用程序中仍然会出现运行时异常,但所有内容都会进入服务器并保存良好。。。我有点困惑我怎么会在回复代码上有问题只是:P
一如既往,我们非常感谢您的帮助 我不熟悉Android或Spring,但我猜ServiceStack响应如何转换/反序列化为Android/Spring
响应属性存在问题。HttpStatus看起来像一个枚举,如果我理解这里的文档的话,它看起来像是您试图将响应主体转换为HttpStatus枚举。也许尝试一下ResponseEntity
?忘了提及-我正在使用Android的Spring框架作为我的Rest提供商!是的,我想我也试过了,但我只是得到了一个空字符串。。对其他东西和春天来说有点新鲜,所以毫无疑问这是我正在做的一件非常愚蠢的事情!是的,将其更改为字符串起作用了,我能够从ResponseEntity:)中获取状态代码和响应头也出现在事件的C#端,对于ServiceStack,我必须使用“base.response.StatusCode=(int)HttpStatusCode.Conflict;”来更改响应代码,现在在Android端,我可以从响应头中获取状态代码
public object Post(RegisteredDeviceDto registeredDeviceDto)
{
Debug.WriteLine("RegisteredDeviceRestService::POST::RegisteredDeviceDto (RegisteredDeviceAdd)");
if (registeredDeviceDto != null)
{
Debug.WriteLine("DeviceToAdd:" + registeredDeviceDto.ToString());
RegisteredDeviceDomainObject registeredDeviceToAdd =
_DtoToDomainObject.registeredDeviceDtoToDomainObject(registeredDeviceDto);
_RegisteredDeviceDao.saveDomainObject(registeredDeviceToAdd);
return new HttpResult(new object (), "JSON", HttpStatusCode.OK);
}
}