я использую 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 или я ошибаюсь?
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();
}
}
попробуйте ниже код
HttpEntity httpEntity = httpResponse.getEntity();
if (resEntity != null) {
String response_From_Server = EntityUtils.toString(resEntity);
Log.e("","response from server is : "+response_From_Server);
}