android rest client给出内部服务器错误500的错误(使用改造okhttp和gson)

时间:2015-01-07 03:35:42

标签: android rest azure retrofit okhttp

我正在为.net web api(MS azure)创建一个android rest客户端。我正在使用罐子:

改造1.7.1
okhttp 2.0.0
okhttp-url-connection 2.0.0
okio 1.2.0
gson 2.3

但是在服务器上获取错误500内部服务器错误的POST数据。 :( 我的代码是:

RestApi.java:

public interface RestApi {

@Headers({
    "Accept: text/xml",
    "User-Agent: REST-Client",
    })
@POST("/api/Account/Register")
void sendPerson(@Body Person body, Callback<StatusData> callBack);

}

MainActivity.java

   RestAdapter restAdapter = new RestAdapter.Builder()
    .setEndpoint(API_URL)
    .setLogLevel(LogLevel.FULL).setLog(new AndroidLog("xx--LOG--xx"))

    .build();

    RestApi post = restAdapter.create(RestApi.class);


    post.sendPerson(new Person(), new Callback<StatusData>() {


        public void failure(RetrofitError retrofitError) {
                System.out.println(retrofitError.getMessage());
        }

            public void success(StatusData arg0, Response arg1) {
                System.out.println("barcode: " + arg0.created_at);

        }
    });

StatusData.java

public class StatusData {

final String status;
final String created_at;

public StatusData() {
       this.status = "";
       this.created_at = "";
   }

}

Person.java:只是一个POJO类 命名
用户名
密码
城市
解决
手机
pin码

请帮帮我????????

1 个答案:

答案 0 :(得分:0)

如果.Net服务器只接受xml,则应在RestAdapter上设置setConverter(XML Converter)。请参阅http://square.github.io/retrofit/

RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint("https://api.soundcloud.com")
.setConverter(new SimpleXMLConverter())
.build();