【发布时间】:2018-08-13 06:22:30
【问题描述】:
我想从 php 远程网站获取数据。我有一个 php 文件,我想通过它在 android 应用程序中导入数据。 我无法获取数据...发生异常错误(只有异常部分正在运行)。我是 android 新手,所以请帮我解决这个问题。我会很感激你。不耐烦地等待帮助。提前致谢。祝好运.... 这是我的代码。
package com.example.androiddevelopers.my;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;
import android.widget.Toast;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
public class MainActivity extends AppCompatActivity {
public class Downloadweb extends AsyncTask<String,Void,String> {
@Override
protected String doInBackground(String... params) {
String data = "";
URL url ;
HttpURLConnection urlConnection = null;
try{
String postdata = URLEncoder.encode("Player Name","UTF-8")+"=" + URLEncoder.encode(params[1],"UTF-8");
postdata += URLEncoder.encode("Player Role","UTF-8")+"=" + URLEncoder.encode(params[2],"UTF-8");
//url =new URL("http://localhost/ODI-Team/ODI.php");
url = new URL(params[0]);
urlConnection = (HttpURLConnection)url.openConnection();
urlConnection.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(urlConnection.getOutputStream());
wr.write(postdata);
wr.flush();
InputStream in = urlConnection.getInputStream();
InputStreamReader reader = new InputStreamReader(in);
int ch = reader.read();
while(ch != -1){
char current=(char)ch;
data += current;
ch=reader.read();
}
return data;
}
catch (Exception e){
//Toast.makeText(MainActivity.this, "error occured"+e.getMessage(), Toast.LENGTH_SHORT).show();
return "Error ocured"+e.getMessage();
}
}
@Override
protected void onPostExecute(String s){
try{
webView.loadData(s,"text/html","UTF-8");
}
catch (Exception e){
Toast.makeText(MainActivity.this, ""+e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
}
WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView=(WebView)findViewById(R.id.webView);
try{
Downloadweb downloadweb=new Downloadweb();
//replace with your own laptop ip address
downloadweb.execute(new String[]{"http://192.168.0.109/ODI.php"});
}
catch (Exception e){
//Toast.makeText(this, ""+e.getMessage(), Toast.LENGTH_SHORT).show();
webView.loadData("<html><body>Error Occured.</body></html>","text/html","UTF-8");
}
}
}
【问题讨论】:
-
什么是例外,您还想要来自 php 网站或 php webservice 的数据吗?
-
错误发生 length=1;index=1 这是例外。我在 R 中开发了一个项目,结果保存在 csv 文件中,然后我在 php 文件中得到结果,现在我想要这些结果到 android 应用程序
-
您可能遇到索引越界异常。当您尝试从 asynctask 数组访问 1 和 2 索引元素时,您只将一个参数传递给您的 asynctask。在你的 url 编码代码中
-
先生能给我你的邮箱或whatsapp号码吗?
-
在这里问,我已经帮你了。
标签: java php android android-studio