آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

ارسال اطلاعات به سرور و دریافت پاسخ

احسان منصوری  11 سال پیش  11 سال پیش
0 0

سلام. من میخوام اطلاعاتی رو از اندروید به سرور ارسال کنم و یه پاسخ از سرور دریافت کنم. حالا نمیدونم چجوری این کد رو بنویسم. 

پست کردن اطلاعاتم مشکلی نداره فقط کد دریافت پاسخ با استفاده از responseش رو بلد نیستم.

این کد رو نوشتم ولی کار نمیکنه:

         try {
            HttpClient client = new DefaultHttpClient();
            HttpPost method = new HttpPost(url);
        if(params != null){
            method.setEntity(new UrlEncodedFormEntity(params));
        }
            HttpResponse response = client.execute(method);
            Log.i("STATUS_CODE", "Status Code: " + response);
            String responseBody = EntityUtils.toString(response.getEntity());//اینو واسه دریافت پاسخ نوشتم
            Log.i("LOG", "FINAL_RESULT: " +responseBody );

            int code = response.getStatusLine().getStatusCode();
            Log.i("STATUS_CODE", "Status Code: " + code);
            InputStream inputStream = response.getEntity().getContent();
            String result = convertInputStreamtoString(inputStream);

            return result;
        }
        catch (Exception  e){
            e.printStackTrace();
        }

 

0 0
کد php رو هم اگر ممکنه بزارید (11 سال پیش)
0 0
به کد php متاسفانه دسترسی ندارم چون یکی از دوستان سمت سرورش رو نوشته (11 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
Criss  11 سال پیش
0 0

برای دریافت دیتا بهتره به این شکل باشه که با استفاده از متد post هست و درون فایل php از فانکشن استفاده شده

 public static void readdata_FOR_POST() {
//WebServiceForPost رو پایین تر میزارم کلاس
String result = WebServiceForPost.readUrls("http://" + G.ip + "/note-server/service.php?action=read", null);
if (result != null) {
try {
G.tasks.clear();
JSONArray tasks = new JSONArray(result);
for (int i = 0; i < tasks.length(); i++) {
JSONObject object = tasks.getJSONObject(i);
StructTask task = new StructTask();
task.id = object.getLong("task_id");
task.title = object.getString("task_title");
task.desc = object.getString("task_desc");
task.done = object.getInt("task_done") == 1 ? true : false;

Log.i("LOG", "" + object.getString("task_title"));
//netTasks.add(task);
G.tasks.add(task);
}
}
catch (JSONException e) {
e.printStackTrace();
}

}

}

کلاس WebServiceForPost

  public class WebServiceForPost {

public static String readUrls(String url, ArrayList<NameValuePair> params) {
try {
HttpClient client = new DefaultHttpClient();
HttpPost method = new HttpPost(url);
if (params != null) {
method.setEntity(new UrlEncodedFormEntity(params));
}
HttpResponse response = client.execute(method);
InputStream stream = response.getEntity().getContent();
String result = convertInputStreamToString(stream);
return result;
}
catch (ClientProtocolException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();

}
return null;
}


private static String convertInputStreamToString(InputStream inputstream) {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(inputstream));
StringBuilder builder = new StringBuilder();
String line = "";

while ((line = reader.readLine()) != null) {
builder.append(line);
}

return builder.toString();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}

یا کد زیر که برای استفاده از get هست

  private void readdata() {
String result = WebService.readUrls("http://" + G.ip + "/note-server/");
if (result != null) {
try {
G.tasks.clear();
JSONArray tasks = new JSONArray(result);
for (int i = 0; i < tasks.length(); i++) {
JSONObject object = tasks.getJSONObject(i);
StructTask task = new StructTask();
task.id = object.getLong("task_id");
task.title = object.getString("task_title");
task.desc = object.getString("task_desc");
task.done = object.getInt("task_done") == 1 ? true : false;

Log.i("LOG", "" + object.getString("task_title"));
//netTasks.add(task);
G.tasks.add(task);

}
}
catch (JSONException e) {
e.printStackTrace();
}

}
adapter.notifyDataSetChanged();
}

کد کلاس WebService

 package com.freestyler.notes.criss;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;


public class WebService {

public static String readUrls(String url) {
try {
HttpClient client = new DefaultHttpClient();
HttpPost method = new HttpPost(url);

HttpResponse response = client.execute(method);
InputStream stream = response.getEntity().getContent();
String result = convertInputStreamToString(stream);
return result;
}
catch (ClientProtocolException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();

}
return null;
}


private static String convertInputStreamToString(InputStream inputstream) {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(inputstream));
StringBuilder builder = new StringBuilder();
String line = "";

while ((line = reader.readLine()) != null) {
builder.append(line);
}

return builder.toString();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}

 

 

0 0
این روش واسه دریافت جیسون معمولی مگه نیست؟ مثلا اطلاعات یه سایت رو به جیسون تبدیل میکنیم و لینک اون جیسون رو وارد این متد میکنیم و اطلاعاتشو میخونیم؟ ولی من همونطوری که توی اون کد توضیح دادم، پاسخ رو آنی دریافت میکنم با استفاده از response (11 سال پیش)
0 0
برای اینکه جواب رو بصورت آنی دریافت کنید باید از دوتا کد هایی که بالا گذاشتم استفاده کنی < که یک سری پردازش هم سمت سرور در php انجام میشه مقدار رو دریافت میکنه < و جیسون مورد نظر رو خروجی میده (11 سال پیش)
پاسخ به سوال 
Criss  11 سال پیش
0 0

کد استاد داینامیک نیست <

وبا توجه به نوع خروجی جیسون باید تشخیص بدید که باید JSONOBJECT دریافت کنید یا SJONARRAY

تصاویری که از اشیانه اپلود کردم رو انتی ویروس گیر میده و لود نمیشه !

+1 0
نگفتم این کد داینامیک نیست؟:) پس باید بشینیم و خودمون آبجکت رو از آرایه تشخیص بدیم (11 سال پیش)
0 0
هوش مصنوعی هم قرار نبوده پیاده بشه ، من هم مدتی هست دارم روی داینامیک کردنش کار می کنم :) دارم به نتابجی می رسم ، وقتم که آزاد بشه به نتیجه می رسونم به امید خدا و نتیجه رو اعلام می کنم (11 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .