2

私は ServiceStack を使用して、Android デバイスが通信できる REST サービスを作成しました。これまでのところ、残りのサービスに DTO を POST でき、正常に保存されます...私が抱えている問題は、ステータスを返して、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);
    }
}

単純な「return HttpStatus.OK」を使用するだけでも、Android アプリで実行時例外が発生しますが、すべてがサーバーに送られ、正常に保存されます...応答コードに問題があることにちょっと困惑しました: P

いつものように、どんな助けも大歓迎です!!

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 に答える