2

我一直在使用 ServiceStack 创建一个 Android 设备可以与之通信的 REST 服务 - 到目前为止一切顺利,我可以将 DTO 发布到 REST 服务并成功保存......我遇到的麻烦是发回一个返回状态以通知 android 应用程序发生了什么!

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 ();

我的其余服务的 C# 代码是......

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);
    }
}

即使只使用简单的“返回 HttpStatus.OK”,我的 android 应用程序中仍然会出现运行时异常,但所有内容都会发送到服务器并保存得很好......有点难倒我在响应代码方面遇到的问题:磷

一如既往,非常感谢任何帮助!

4

1 回答 1

2

我对 Android 或 Spring 不熟悉,但我猜您的 ServiceStack 响应如何被转换/反序列化为 Android/Spring 存在问题ResponseEntity <HttpStatus>。HttpStatus 看起来像一个 ENUM,如果我理解这里的文档 - http://static.springsource.org/spring/docs/3.0.x/api/org/springframework/http/ResponseEntity.html -它看起来像你试图将响应正文转换为 HttpStatus ENUM。也许试试ResponseEntity<String>

于 2013-03-04T19:03:42.737 回答