當前位置:編程學習大全網 - 源碼下載 - android 在okhttp 中的callback中解析返回的對象為什麽是空的

android 在okhttp 中的callback中解析返回的對象為什麽是空的

public class StringParser implements Parser<String> {

@Override

public String parse(Response response) {

String result=null;

try {

result=response.body().string();

} catch (IOException e) {

e.printStackTrace();

}

return result;

}

}123456789101112123456789101112

再實現壹個將json轉化為實體類的。這個相對復雜壹點,需要將實體類的Class對象傳入,因為我們使用的是gson,進行轉換的時候需要該參數。當然這個應該是對所有實體類通用的,很顯然的用到了泛型。

public class GsonParser<T> implements Parser<T> {

private Class<T> mClass=null;

public GsonParser(Class<T> clazz){

if (clazz==null){

throw new IllegalArgumentException("Class can't be null");

}

this.mClass=clazz;

}

@Override

public T parse(Response response) {

try {

Gson gson=new Gson();

String str=response.body().string();

T t=gson.fromJson(str,mClass);

return t;

} catch (IOException e) {

e.printStackTrace();

}

return null;

}

}

1234567891011121314151617181920212212345678910111213141516171819202122

要在UI層進行更新UI,其實很簡單,解析完成後發生壹個消息就好了,那麽要怎麽做呢。

首先實現Callback接口

public class Callback<T> implements com.squareup.okhttp.Callback {

private Parser<T> mParser;

public Callback(Parser<T> mParser) {

if (mParser == null) {

throw new IllegalArgumentException("Parser can't be null");

}

this.mParser = mParser;

}

@Override

public void onFailure(Request request, IOException e) {

}

@Override

public void onResponse(Response response) throws IOException {

}

}

12345678910111213141516171819202122231234567891011121314151617181920212223

通過構造函數將我們的Parser傳遞了進去。

  • 上一篇:關於交友的故事名
  • 下一篇:如何在Zynq-7000上燒寫PL Image
  • copyright 2024編程學習大全網