можно использовать httpClient в Android Studio?

я использую httpClient для отправки данных в файл php, как это

PHP

<?php
echo $_POST['My_Data'];
?>

и я добавляю <uses-permission android:name="android.permission.INTERNET" /> в AndroidManifest.xml для подключения к Интернету.

это моя основная деятельность

SendActivity.java

public class SendActivity extends ActionBarActivity {

String myJSON;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_send);

SendData();
}

public void SendData(){
class GetDataJSON extends AsyncTask<String, Void, String>{

private ProgressDialog pDialog;
private InputStream is = null;
private String url = "http://----/send.php";
private String page_output = "";

@Override
protected String doInBackground(String... args) {

try {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("My_Data", "this is my data"));
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(new UrlEncodedFormEntity(params));

HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"), 8);
StringBuilder sb = new StringBuilder();

String line = null;
while ((line = reader.readLine()) != null)
{
sb.append(line + "\n");
}
is.close();
page_output = sb.toString();

Log.i("LOG", "page_output --> " + page_output);
} catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + e.toString());
}

return page_output;
}

@Override
protected void onPostExecute(String result){
Log.i("LOG", " onPostExecute -> " + result );
myJSON=result;
Log.i("LOG", "myJSON" + myJSON);
}
}
GetDataJSON g = new GetDataJSON();
Log.i("LOG", " GetDataJSON " );
g.execute();
}
}

я использую Android Studio и много кода осуждается И мои данные не отправляются на php, и я не могу получить данные от php

истек срок действия httpClient из Android Studio или я ошибаюсь?

0

Решение

Http-клиент устарел на уровне API 22. Поэтому вы должны использовать open OpenUrlConnection. Вы можете использовать этот код

public class FetchUrl {

private URL url;

public String fetchUrl(String urlString, HashMap<String, String> values) {
String response = "";
try {
url = new URL(urlString);
Log.d("url string", urlString);
HttpURLConnection 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(values));

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

if (responseCode == HttpsURLConnection.HTTP_OK) {
String line;
BufferedReader br = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
while ((line = br.readLine()) != null) {
response += line;
}
} else {
response = "";

throw new Exception(responseCode + "");
}
} catch (Exception e) {
e.printStackTrace();
}

return response;
}

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"));
}
Log.d("query string", result.toString());
return result.toString();
}

}
3

Другие решения

попробуйте ниже код

      HttpEntity httpEntity = httpResponse.getEntity();
if (resEntity != null) {

String response_From_Server = EntityUtils.toString(resEntity);
Log.e("","response from server is : "+response_From_Server);
}
1

По вопросам рекламы [email protected]