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

کلاس WebService

joker  8 سال پیش  8 سال پیش
0 0

سلام دوستان

کسانی که کلاس وب سرویس رو برای اندروید های 4 به بالا نوشتن لطف کنن بزارن دیگر دوستان هم استفاده کنند

تشکر

 برای این سوال 2 پاسخ وجود دارد. مشاهده پاسخ صحیح
پاسخ به سوال 
علی  8 سال پیش
+4 0

من در بعضی از پروژه ها از این استفاده می کنم :

 
 
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;

import javax.net.ssl.HttpsURLConnection;

public class RequestHandler {

public String sendPostRequest(String requestURL,
HashMap<String, String> postDataParams) {

HttpURLConnection conn = null;
URL url;

StringBuilder sb = new StringBuilder();
try {
url = new URL(requestURL);

conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(15000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);


OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
writer.write(getPostDataString(postDataParams));

writer.flush();
writer.close();
os.close();
int responseCode = conn.getResponseCode();

if (responseCode == HttpsURLConnection.HTTP_OK) {
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
sb = new StringBuilder();
String response;
while ((response = br.readLine()) != null) {
sb.append(response);

Log.e(G.log, "Data webService :" + sb.toString());
}
}

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

Log.e(G.log, "Error checking internet connection", e);

} finally {
if (conn != null) {
conn.disconnect();
}
}
return sb.toString();
}

private String getPostDataString(HashMap<String, String> params) throws UnsupportedEncodingException {
StringBuilder result = new StringBuilder();
boolean first = true;
for (Map.Entry<String, String> entry : params.entrySet()) {
if (first)
first = false;
else
result.append("&");

result.append(URLEncoder.encode(entry.getKey(), "UTF-8"));
result.append("=");
result.append(URLEncoder.encode(entry.getValue(), "UTF-8"));


}

return result.toString();
}
}
 
 

اینم طریقه صدا زدنش :

 
 
 
RequestHandler rh = new RequestHandler();
HashMap<String, String> param = new HashMap<>();
param.put("action", "read");
String result = rh.sendPostRequest("http://localhost/example.com", param);
 
 
0 0
این تیکه از کد برای من خطا میده که فایل پیدا نشد. new BufferedReader(new InputStreamReader(conn.getInputStream())) (8 سال پیش)
0 0
import کردین BufferedReader رو؟ (8 سال پیش)
0 0
من اگه بخوام یه جی سون رو با این کلاس وب سرویس شما دریافت کنم چطور باید دریافت کنم؟ (8 سال پیش)
0 0
من با همون قبلی واسه آندروید 6 هم ازش استفاده کردم جواب داد ، ایرادش چیه ؟ (8 سال پیش)
0 0
HttpClient تو اندروید 4 به بالا وجود نداره (8 سال پیش)
0 0
بهتره که finally اضاف بشه (8 سال پیش)
0 0
جناب raeesi طبق گفته شما finally رو اضافه کردم . (8 سال پیش)
0 0
بسيار عالي (8 سال پیش)
پاسخ به سوال 
joker  8 سال پیش
0 0

 پاسخ صحیح

جواب از طرف :kazemian

اگه میخواید از http client استفاده کنید میتونید این کد رو به گریدل اضافه کنیدcompile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'


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