我正在尝试从服务器获取Json响应并将其作为arraylist传递给下一个活动。这与排球很好,但我无法通过改造得到回应。这是我的代码。
public class MainActivity extends AppCompatActivity {
public static final String ROOT_URL = "http://#####.####/";
String username;
String password;
private Button makerequest;
private ProgressDialog pdialog;
private EditText edittextusername;
private EditText edittextpassword;
private String DataArray[] = new String[15];
private ArrayList<Result> dataarr = new ArrayList<>();
int i=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
makerequest = (Button) findViewById(R.id.btnObjRequest);
edittextpassword = (EditText) findViewById(R.id.editpassword);
edittextusername = (EditText) findViewById(R.id.editusername);
pdialog = new ProgressDialog(this);
pdialog.setMessage("wait kar be...");
pdialog.setCancelable(false);
makerequest.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
makejsonobjectrequest();
}
});
}
private void makejsonobjectrequest(){
username = edittextusername.getText().toString().trim();
password = edittextpassword.getText().toString().trim();
RestAdapter adapter = new RestAdapter.Builder()
.setEndpoint(ROOT_URL)
.build();
//creating object of our interface
DataApi data = adapter.create(DataApi.class);
//defining the method.
data.getposition(username, password, new Callback<ArrayList<Result>>() {
@Override
public void success(ArrayList<Result> list, Response response) {
dataarr= list;
Bundle b = new Bundle();
b.putSerializable("array", dataarr);
Intent intent = new Intent(getBaseContext(), Display.class);
intent.putExtras(b);
startActivity(intent);
}
@Override
public void failure(RetrofitError error) {
Toast.makeText(getBaseContext(), error.toString(),Toast.LENGTH_SHORT).show();
}
});
}
}
答案 0 :(得分:0)
点击此链接,您将使用改造库http://www.androidhive.info/2016/05/android-working-with-retrofit-http-library/
获得json响应答案 1 :(得分:0)
当您期望的响应不是来自服务器时,通常会出现此类错误。
我认为您应首先检查来自服务器的响应格式是否正确,以便您的应用程序可以正确解析它。
如果您使用的是Android工作室,您可以在发送请求后看到您发送的请求以及在Android监视器中用于该请求的Url,尝试使用https://www.getpostman.com/等应用程序发送您的请求并查看是否你从服务器得到了正确的答复。
希望这会有所帮助。