بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
ارسال اطلاعات به سرور و دریافت پاسخ
سلام. من میخوام اطلاعاتی رو از اندروید به سرور ارسال کنم و یه پاسخ از سرور دریافت کنم. حالا نمیدونم چجوری این کد رو بنویسم.
پست کردن اطلاعاتم مشکلی نداره فقط کد دریافت پاسخ با استفاده از 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;
}
}
پاسخ به سوال
Criss
11 سال پیش
0
0
کد استاد داینامیک نیست <
وبا توجه به نوع خروجی جیسون باید تشخیص بدید که باید JSONOBJECT دریافت کنید یا SJONARRAY
تصاویری که از اشیانه اپلود کردم رو انتی ویروس گیر میده و لود نمیشه !

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