Beispiel der POST-request in Android studio
Ich gerade angefangen zu lernen, android paar Tage her und ich habe ein problem mit dem hochladen meiner JSON-Daten zum server. Ich Schaffe es abrufen über folgenden code:
Edit: ich habe es geschafft, um Dateien mit externen OKHTTP-Bibliothek, aber ich möchte dies tun, ohne Verwendung von externen Bibliotheken.
package cc.demorest;
import android.os.AsyncTask;
import android.renderscript.ScriptGroup;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.EditText;
import android.widget.TextView;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DownloadTask task = new DownloadTask();
task.execute("myserver.com");
}
//Downloadtask
public class DownloadTask extends AsyncTask<String,Void,String> {
@Override
protected String doInBackground(String... urls) {
String result = "";
URL url;
HttpURLConnection urlConnection=null;
try {
url = new URL(urls[0]);
urlConnection=(HttpURLConnection)url.openConnection();
InputStream in = urlConnection.getInputStream();
InputStreamReader reader = new InputStreamReader(in);
int data=reader.read();
while (data !=-1){
char current=(char) data;
result += current;
data = reader.read();
}
return result;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
//After download task
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
try {
JSONArray jArray=new JSONArray(result);
JSONObject json_data = jArray.getJSONObject(1);
//Logging data
Log.i("Podatci: ", "Id: " + json_data.getInt("Id") +
", Name: " + json_data.getString("Name") +
", Years: " + json_data.getString("Age") +
", Email address: " + json_data.getString("Email")
);
TextView textView = (TextView) findViewById(R.id.textViewName);
textView.setText("ID: "+", Name: "+ json_data.getInt("Id")+json_data.getString("Name")+json_data.getString("Age")+json_data.getString("Email"));
/*
String data = jsonObject.getString("Name");
Log.i("Website content", data);
*/
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}
Ich versuche nun, Sie zu senden, meine Daten auf demselben server mit denselben Feldern. Ich suchte internet, aber die meisten Dinge, die ich gefunden habe sind veraltet.. ich würde wirklich empfehlen die etwas Hilfe oder ein Beispiel.
Beste Grüße
- Bezieht sich diese meine Lösung für Sie:- stackoverflow.com/a/33749770/3946958
- Möglich, Duplikat der wie stellen Sie Sync oder Async-HTTP-Post/Get in Android Studio
- poste deinen code hochladen, wo es schief ging
- Dieser code funktioniert, aber es ist für die GET-Anforderung. Es ziehen die Daten und zeigt Sie, wie es sollte. Jetzt will ich erstellen, die Methode POST, um Daten auf dem server, und ich bin nicht in der Lage, es zu tun, ohne Verwendung von externen Bibliotheken, und ich möchte vermeiden, dass.
- Sie können auch finden, hier einige Beispiele stackoverflow.com/questions/4543894/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Volley definiert hier. Es ist weit einfacher.
Verwenden
HttpURLConnection
es nicht die Verwendung von externen Bibliotheken. Wenn Sie eine HttpURLConnection, es muss einAsyncTask
.Hier ist mein code aus einem Projekt, das ich abgeschlossen. Hoffe, es hilft.
Ersten, setzen Sie diese in Ihre manifest.xml Datei vor :
Aufruf der AsyncTask:
(Ignorieren dies, SinceTime, und GoesAddress. Sie sind einfach nur Variablen, die ich übergeben)
Klasse:
passToDisplay
. InputCode gewesen sein muss, unter Bezugnahme auf den code durch den Benutzer eingegeben