Android-web请求不工作,应用程序停止工作
我有一个android应用程序,我想从服务器获取一个请求,并将其显示给用户,但它不工作,应用程序停止工作。这是我的密码:Android-web请求不工作,应用程序停止工作,android,url,web,get,request,Android,Url,Web,Get,Request,我有一个android应用程序,我想从服务器获取一个请求,并将其显示给用户,但它不工作,应用程序停止工作。这是我的密码: URL url; try { url = new URL("http://accounting.hamyar.net/IBSng/user/index.php?normal_username=7325238658&normal_password=hamidreza3329"); URLConnection conn = url
URL url;
try {
url = new URL("http://accounting.hamyar.net/IBSng/user/index.php?normal_username=7325238658&normal_password=hamidreza3329");
URLConnection conn = url.openConnection();
conn.setRequestProperty("Cookie", "IBS_SESSID=hlpjpnm8hdrf84n7igk0m5n9v6; session_id=f49f028f0c3b87719638136ce5cd5f23090eca5e");
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
while ((inputLine = br.readLine()) != null) {
if (inputLine.contains("<td class=") && inputLine.contains("Middle") && inputLine.contains("<sub>"))
{
String chargenum = getBetween(inputLine, "<td class=\"List_Col\" valign=\"Middle\" >", "<sub>").trim();
String chargeunit = getBetween(inputLine, "<sub>", "</sub>");
String gig = chargenum.trim() + chargeunit.trim();
System.out.println("Your gig is "+gig);
}
}
br.close();
} catch (IOException e) {
}
}
public static String getBetween(String str, String open, String close) {
if (str == null || open == null || close == null) {
return null;
}
int start = str.indexOf(open);
if (start != -1) {
int end = str.indexOf(close, start + open.length());
if (end != -1) {
return str.substring(start + open.length(), end);
}
}
return null;
}
URL;
试一试{
url=新url(“http://accounting.hamyar.net/IBSng/user/index.php?normal_username=7325238658&normal_password=hamidreza3329");
URLConnection conn=url.openConnection();
conn.setRequestProperty(“Cookie”,“IBS_sessiond=hlpjpnm8hdrf84n7igk0m5n9v6;session_id=f49f028f0c3b87719638136ce5cd5f23090eca5e”);
BufferedReader br=新的BufferedReader(新的InputStreamReader(conn.getInputStream());
字符串输入线;
而((inputLine=br.readLine())!=null){
如果(inputLine.contains(“您必须在AndroidManifest.xml
外部应用程序标记中添加Internet
权限,如下所示:
<uses-permission android:name="android.permission.INTERNET" />
您是否在线程中运行此代码,因为它看起来不像。请尝试在异步任务中运行它。尝试将以下代码作为类添加到项目中:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import android.os.AsyncTask;
public class MyBackgroundTask extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... params) {
URL url;
try {
url = new URL(
"http://accounting.hamyar.net/IBSng/user/index.php?normal_username=7325238658&normal_password=hamidreza3329");
URLConnection conn = url.openConnection();
conn.setRequestProperty(
"Cookie",
"IBS_SESSID=hlpjpnm8hdrf84n7igk0m5n9v6; session_id=f49f028f0c3b87719638136ce5cd5f23090eca5e");
BufferedReader br = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
String inputLine;
while ((inputLine = br.readLine()) != null) {
if (inputLine.contains("<td class=")
&& inputLine.contains("Middle")
&& inputLine.contains("<sub>")) {
String chargenum = getBetween(inputLine,
"<td class=\"List_Col\" valign=\"Middle\" >",
"<sub>").trim();
String chargeunit = getBetween(inputLine, "<sub>", "</sub>");
String gig = chargenum.trim() + chargeunit.trim();
System.out.println("Your gig is " + gig);
}
}
br.close();
} catch (IOException e) {
}
return "";
}
public static String getBetween(String str, String open, String close) {
if (str == null || open == null || close == null) {
return null;
}
int start = str.indexOf(open);
if (start != -1) {
int end = str.indexOf(close, start + open.length());
if (end != -1) {
return str.substring(start + open.length(), end);
}
}
return null;
}
}
导入java.io.BufferedReader;
导入java.io.IOException;
导入java.io.InputStreamReader;
导入java.net.URL;
导入java.net.URLConnection;
导入android.os.AsyncTask;
公共类MyBackgroundTask扩展了AsyncTask{
@凌驾
受保护字符串doInBackground(无效…参数){
网址;
试一试{
url=新url(
"http://accounting.hamyar.net/IBSng/user/index.php?normal_username=7325238658&normal_password=hamidreza3329");
URLConnection conn=url.openConnection();
conn.setRequestProperty(
“饼干”,
“IBS_sessiond=hlpjpnm8hdrf84n7igk0m5n9v6;session_id=f49f028f0c3b87719638136ce5cd5f23090eca5e”);
BufferedReader br=新的BufferedReader(新的InputStreamReader(
conn.getInputStream());
字符串输入线;
而((inputLine=br.readLine())!=null){
if(inputLine.contains)(“您是否向清单文件添加了INTERNET权限?在我没有adb之后添加。如何使用logcat?您可以直接从Android Studio或Eclipse IDE查看logcat。如果没有logcat,很难确定确切的问题。我可以运行确切的代码片段(顺便说一句,我从原始问题中挑选了这段代码)很好。从日志中,您似乎遇到了类强制转换异常。那么让我问一下,您是否试图从backgroundTask中检索结果?因为如果是这样,您肯定是走错了路。我想获取网页源代码和进程。@HamidrezaKavehpishghadam尝试使用字符串backgroundResult=new MyBackgroundT请在onCreate中使用ask().execute().get();
,然后查看backgroundResult字符串的内容。它是空字符串还是仍有异常?