Ich habe folgenden Code geschrieben, um zu posten und Daten vom Server mit okhttp zu bekommen, aber es funktioniert nicht. In NewTest.javaWie kann ich Daten von meiner Android App auf PHP-Server mit okhttp posten?
public class NewTest extends AppCompatActivity {
TextView txtJson;
Button btnOkay;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_test);
txtJson= (TextView) findViewById(R.id.txtJson);
findViewById(R.id.txtJson)).getText().toString());
assert (findViewById(R.id.btnOkay)) != null;
(findViewById(R.id.btnOkay)).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new TaskPostWebService("url written here").execute(((TextView) findViewById(R.id.txtJson)).getText().toString());
}
});
}
private class TaskWebServiceGet extends AsyncTask<String,Void,String> {
@Override
protected void onPreExecute()
{
super.onPreExecute();
}
@Override
protected String doInBackground(String... params) {
try {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(params[0])
.build();
Response response = client.newCall(request).execute();
String responseJson = response.body().string();
Log.i("@", "" + responseJson);
}
catch (Exception e){
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
}
}
private class TaskPostWebService extends AsyncTask<String,Void,String> {
private String url;
private ProgressDialog progressDialog;
public TaskPostWebService(String url){
this.url = url;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog = ProgressDialog.show(NewTest.this,"","");
}
@Override
protected String doInBackground(String... params) {
String fact = "";
try {
OkHttpClient client = new OkHttpClient();
RequestBody body = new FormBody.Builder()
.add("\"nonce\" : \"G9Ivek\",", params[0])
.add("\"iUserId \": \"477\",", params[1])
.build();
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
Response response = client.newCall(request).execute(); // hits server
String json = response.body().string(); // server gives response
ObjectMapper mapper = new ObjectMapper();
Map<String,String> map = mapper.readValue(json, new TypeReference<Map>() { // convert json to object
});
if(map != null){
fact = map.get("gruesomeFact");
}
Log.i("@",""+json);
}
catch (Exception e){
e.printStackTrace();
}
return fact;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
TextView text = (TextView) findViewById(R.id.txtJson);
text.setText(s);
progressDialog.dismiss();
}
}
}
Ich erhalte Zugriff verweigert Meldung.
Kann mir jemand sagen, was los ist.
Haben Sie die 'INTERNET' Erlaubnis in Ihrer Manifest-Datei? – gdros
Ja, ich habe Internet-Berechtigungen in der Android.manifest-Datei. – Rujuta
Bitte weitere Informationen über die Fehlermeldung Sahre Sie bekommen – abarisone