için Ayrıntılı olarak HttpUrlConnection kullanarak parametreleri içeren yazı isteğinde nasıl. Giriş ekranında kullanıcı adı, parola alanı, sunucuya posta göndermek ve "TRUE" durumuyla json yanıtı olsun. Volley Kütüphanesi kullanmak istemiyorum.
Lütfen ayrıntılı bir şekilde cevap verin veya bağlantı paylaşın, teşekkürler u.<em>anahtarı HttpUrlConnection kullanarak</em> parametreler değer çifti ile <code>POST Request</code> için <strong>iyi cevap</strong> paylaşın android
cevap
aşağıdaki kodla bir dize isteği hazırlayın:
Uri.Builder builder = new Uri.Builder()
.appendQueryParameter("username", edit_username.getText().toString())
.appendQueryParameter("password", edit_password.getText().toString());
String query = builder.build().getEncodedQuery();
koduyla takip ederek tüm zaman uyumsuz görev web hizmeti gerçekleştirin:
new AsyncLoad(query).execute(); // You have pass your request here
: Aşağıdaki çizgi ile
class AsyncLoad extends AsyncTask<Void,Void,Void>
{
InputStream inputStream;
HttpURLConnection urlConnection;
byte[] outputBytes;
String query;
String ResponseData;
public AsyncLoad(String query) {
this.query = query;
}
@Override
protected Void doInBackground(Void... params) {
// Send data
try {
/* forming th java.net.URL object */
URL url = new URL("your webservice url");
urlConnection = (HttpURLConnection) url.openConnection();
/* pass post data */
outputBytes = query.getBytes("UTF-8");
urlConnection.setRequestMethod("POST");
urlConnection.connect();
OutputStream os = urlConnection.getOutputStream();
os.write(outputBytes);
os.close();
/* Get Response and execute WebService request*/
int statusCode = urlConnection.getResponseCode();
/* 200 represents HTTP OK */
if (statusCode == HttpsURLConnection.HTTP_OK) {
inputStream = new BufferedInputStream(urlConnection.getInputStream());
ResponseData= convertStreamToString(inputStream);
} else {
ResponseData = null;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
Çağrı AsynctTask Yanıtı String'e dönüştür:
public static String convertStreamToString(InputStream is) {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append((line + "\n"));
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
bağlantısını nasıl outputBytes? Metot veya sınıfa istek kodu koyabilir miyim, sorguyu bu yönteme nasıl aktarabilirim, lütfen ayrıntılı olarak cevap verin. Cevabınızı –
dünya çapında declare byte [] outputBytes değişkeni kabul ediyorum. Sorgulayıcısını kullanarak parametreyi ileterek sorguyu async sınıfınıza aktarabilirsiniz. Eşzamansız görevi nasıl kullanacağınız hakkında bilgi edinebilirsiniz: http://developer.android.com/intl/zh-cn/reference/android/os/AsyncTask.html –
düzenlemek ur yanıtı AsyncTask'da sınıf bloğunu nereye koymak istediğinizi veya yöntemi, bu sınıfa sorguyu iletmek, bayt [] bildirmek, Birisi için yararlı olacaktır, teşekkür ederiz. –
Http İstemcisini Apache Commons'tan kullanabilirsiniz. Örneğin:
private class PostTask extends AsyncTask<String, String, String> {
@Override
protected String doInBackground(String... data) {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://<ip address>:3000");
try {
//add data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("data", data[0]));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
//execute http post
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
} catch (IOException e) {
}
}
}
Android, API 22 seviyesinden beri HttpClient Apache modülünü kullanımdan kaldırmıştır. HttpURLConnection ile gitmelisiniz. –
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new AsyncCaller().execute();
}
private class AsyncCaller extends AsyncTask<Void, Void, Void>
{
ProgressDialog pdLoading = new ProgressDialog(AsyncExample.this);
@Override
protected void onPreExecute() {
super.onPreExecute();
//this method will be running on UI thread
pdLoading.setMessage("Loading...");
pdLoading.show();
}
@Override
protected Void doInBackground(Void... params) {
String address = "http://server/postvalue";
JSONObject json = new JSONObject();
json.put("username", username);
json.put("password", password);
String requestBody = json.toString();
URL url = new URL(address);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoOutput(true);
urlConnection.setRequestProperty("Content-Type", "application/json");
OutputStream outputStream = new BufferedOutputStream(urlConnection.getOutputStream());
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream, "utf-8"));
writer.write(requestBody);
writer.flush();
writer.close();
outputStream.close();
InputStream inputStream;
// get stream
if (urlConnection.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
inputStream = urlConnection.getInputStream();
} else {
inputStream = urlConnection.getErrorStream();
}
// parse stream
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String temp, response = "";
while ((temp = bufferedReader.readLine()) != null) {
response += temp;
}
return response.toString();
} catch (IOException | JSONException e) {
return e.toString();
}
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
pdLoading.dismiss();
Log.i(LOG_TAG, "POST\n" + result);
}
}
}
Anahtar değer çiftini geçmek istiyor. Json isteği işe yaramayacak. –
DefaultHttpClient httpClient=new DefaultHttpClient();
HttpPost httpPost=new HttpPost(register_user);
JSONObject jsonObject=new JSONObject();
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Content-type", "application/json");
try {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("username", username.getText().toString()));
params.add(new BasicNameValuePair("password",password.getText().toString()));
httpPost.setEntity(new UrlEncodedFormEntity(params));
HttpResponse response=httpClient.execute(httpPost);
if(response!=null){
InputStream is=response.getEntity().getContent();
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(is));
StringBuilder sb=new StringBuilder();
String line=null;
while((line=bufferedReader.readLine())!=null){
sb.append(line+"\n");
}
this.message=sb.toString();
//Toast.makeText(getBaseContext(), message, Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
- 1. çifti unordered_map sorunun anahtarı olarak <int,int> çifti
- 2. Git, <<<<<<< HEAD dosyasına
- 3. Java - anahtarı Hashmap <Sınıfı, ArrayList <Class>>
- 4. POST yöntemi ve HttpURLConnection
- 5. Özellik için geçersiz değer <position>
- 6. Android:</p> <p>TabActivity: bir etkinliğe tabActivity gelen parametreler
- 7. svg geçersiz değer için <path>
- 8. <class> Django için <class> için hiçbir yabancı anahtarı vardır
- 9. İçindeki eleman sayısı <5 in <a1 <0</ a1><T>
- 10. ben den özellikle <strong>XML</strong> bir bash dosyasını çağırmak istiyorum <strong>klish</strong></p> <p>ayrıştırıcı XML</strong><strong>olarak ile
- 11. ruby bloğu ile başlar << - HTML
- 12. Nedir? ve << demek?
- 13. Boost :: shared_ptr <T> ve boost :: shared_ptr <const T> referans sayısını paylaşın mı?
- 14. Javascript: İşlev için "Sonsuz" parametreler? Aşağıda birinde <code>console.log</code> yazdığınızda Chrome'da
- 15. Perl: bunun <code>$b</code> sonunda</p> <ul> <li><pre><code>{ 'b' => { 'c' => 1, 'd' => 1, 'e' => 1 } }; </code></pre></li> </ul> <p>: Bunun sonunda referansı
- 16. EJS: <% = versus <% -
- 17. Android Studio i</p> <pre><code>';' </code></pre> <p>Android Studio yazıyor bastığınızda ... benim klavye tuşları
- 18. Java, bitshifts kullanırken, neden 1 << 32! = 1 << 31 << 1?
- 19. Operatörler << sınıfları için biçimlendirmeli misiniz?
- 20. <: <İş nasıl?
- 21. Ben, iyi çalışan bir <strong>çubuk grafiğini</strong> çizmek için <strong>Chart.js</strong> kitaplığı kullanıyorum aynı <canvas>
- 22. HttpUrlConnection Android
- 23. DownloadManager.Request.setNotificationVisibility jSecurityException başarısız: geçersiz değer görünürlük için: Ben benim bir <code>Service</code> sınıfında <code>DownloadManager</code> kullanmaya çalışıyorum 2
- 24. Android: Ben</p> <pre><code>int a=(-2)%6 </code></pre> <p>çalışırsanız
- 25. Anahtar/değer çifti tablo tablosu için en iyi uygulama
- 26. Böyle Normal <code>HTTPURLConnection</code> istekleri Auth Başlığını ayarlamak mümkün değilim bir Android OKHTTPClient istek
- 27. eğer veya Anahtarı vaka başka ise performans göz önüne alındığı zaman kimse bir <strong></strong> veya <strong>anahtarı durum ise else if</strong></p> <p>Yinelenen iyidir
- 28. Değeri anahtarı alın - Sözlük <dize, Liste <string>>
- 29. "<%:" ne yapıyor?</p> <pre><code><%: Model.FirstName %> </code></pre> <p>"<%:" Ne vermez: do
- 30. Url parametreler dışında nasıl url talep edilir?</p> <pre><code><link rel="canonical" href="<%= request.url %>" /> </code></pre> <p>sorundur sadece parametreleri içeren tam url:
kendi başınıza çalıştık ne olacak? Veya Google.com’u da yapın. –
'stack.com 'adresini tarayıcınızda' Google.com' yerine 'google.com' olarak girdiniz. –
@jaydroider HashMap ile çalıştım params çok iyi çalışıyor. Ama doğru yol olup olmadığını bilmiyorum. Kullanımdan kaldırılan HttpClient'i kullandıkları çok öğretici arandı. lütfen mükemmel bir yanıtı paylaşın veya –