如何使用异步http post从android studio发送数据到xampp并在真实设备中运行?
Posted
技术标签:
【中文标题】如何使用异步http post从android studio发送数据到xampp并在真实设备中运行?【英文标题】:How to sending data from android studio with asychronous http post to xampp and run it in real device? 【发布时间】:2016-09-18 09:38:13 【问题描述】:我在异步 http 帖子上遇到问题,如果使用模拟器运行,我已经设法将数据从 EditText 发送到服务器。但在使用真实设备时失败。如果使用 tge 真实设备运行,如何能够将数据从 android studio 发送到服务器(xampp)?
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.Toast;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements View.OnClickListener
private EditText value;
private Button btn;
private ProgressBar pb;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
value = (EditText)findViewById(R.id.editText1);
btn = (Button)findViewById(R.id.button1);
pb = (ProgressBar)findViewById(R.id.progressBar1);
pb.setVisibility(View.GONE);
btn.setOnClickListener(this);
@Override
public void onClick(View v)
if (value.getText().toString().length()<1)
Toast.makeText(getApplicationContext(),"Isi sesuatu Dong!",Toast.LENGTH_LONG).show();
else
pb.setVisibility(View.VISIBLE);
private class MyAsyncTask extends AsyncTask<String,Integer,Double>
@Override
protected Double doInBackground(String... params)
postData(params[0]);
return null;
protected void onPostExecute(Double hasil)
pb.setVisibility(View.GONE);
Toast.makeText(getApplicationContext(),"Berhasil dikirim",Toast.LENGTH_LONG).show();
protected void onProgressUpdate(Integer... progress)
pb.setProgress(progress[0]);
public void postData(String nilaiYangDikirim)
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://10.0.2.2/http/index.php");
try
List<NameValuePair> nilai = new ArrayList<NameValuePair>();
nilai.add(new BasicNameValuePair("myHttpData", nilaiYangDikirim));
httpPost.setEntity(new UrlEncodedFormEntity(nilai));
HttpResponse response = httpClient.execute(httpPost);
catch (ClientProtocolException e)
// TODO Auto-generated catch block
catch (IOException e)
// TODO Auto-generated catch block
【问题讨论】:
试试这个链接可能对你有帮助***.com/questions/2938502/… 谢谢你的建议 【参考方案1】:如果您要使用真机测试代码,则必须记下系统的 IP 地址。
转到 CMD->输入 ipconfig /all(windows) 并在 ubuntu 中输入 ip [options]
然后记下无线网卡的IP地址(可能以192.168.*.*开头)
然后转到 xampp 文件夹并搜索 httpd-xampp.conf
从 192.168 输入允许。 *。 * 在文件末尾
在系统中创建 Adhoc 网络或 wifi P2P 网络
在移动端连接到 P2p 网络
最后把代码改成这样
HttpPost httpPost = new HttpPost("http://192.168.*.*/http/index.php");
【讨论】:
以上是关于如何使用异步http post从android studio发送数据到xampp并在真实设备中运行?的主要内容,如果未能解决你的问题,请参考以下文章
从 Android 发送 JSON HTTP POST 请求
我们可以像在 android asyncTask 中一样显示加载状态,直到我们在 swift 中使用 HTTP Post 请求得到响应