Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:Eclipse/Netbeans冲突HTML_Java_Android_Html Parsing_Http Post - Fatal编程技术网

Java Android:Eclipse/Netbeans冲突HTML

Java Android:Eclipse/Netbeans冲突HTML,java,android,html-parsing,http-post,Java,Android,Html Parsing,Http Post,我在Netbeans(或EclipseW/oAndroid)中使用以下代码基本上登录到一个页面并提取其HTML源代码。这非常有效,它可以打印html源代码。但是,当我在Android中使用相同的代码,并将生成的html源代码设置为textView或尝试将其打印为Toast时,它返回一个完全空的字符串 进口 public class LogTest { public String doSubmit(String url, Map<String, String> data) thr

我在Netbeans(或EclipseW/oAndroid)中使用以下代码基本上登录到一个页面并提取其HTML源代码。这非常有效,它可以打印html源代码。但是,当我在Android中使用相同的代码,并将生成的html源代码设置为textView或尝试将其打印为Toast时,它返回一个完全空的字符串

进口

public class LogTest {

  public String doSubmit(String url, Map<String, String> data) throws Exception {
    URL siteUrl = new URL(url);
    HttpURLConnection conn = (HttpURLConnection) siteUrl.openConnection();
    conn.setRequestMethod("POST");
    conn.setDoOutput(true);
    conn.setDoInput(true);

    DataOutputStream out = new DataOutputStream(conn.getOutputStream());

    Set keys = data.keySet();
    Iterator keyIter = keys.iterator();
    String content = "";
    for (int i = 0; keyIter.hasNext(); i++) {
        Object key = keyIter.next();
        if (i != 0) {
            content += "&";
        }
        content += key + "=" + URLEncoder.encode(data.get(key), "UTF-8");
    }
    out.writeBytes(content);
    out.flush();
    out.close();
    BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    String line = "";
    String html = "";
    while ((line = in.readLine()) != null) {
        html += line + "\n";
    }
    in.close();
    return html;

}

public static void main(String[] args) {
    String html = "no html";
    try {
        LogTest test = new LogTest();
        String url = "http://www.cupertino.schoolloop.com/portal/login?login_name=siddhantdanger&password=11616sid"
                + "&event_override=login";
        Map<String, String> data = new HashMap<String, String>();
        data.put("login_name", "aLogin");
        data.put("password", "aPass");
        data.put("event_override", "login");
        data.put("etarget", "login_form");
        html = test.doSubmit(url, data);
    } catch (Exception e) {
        e.printStackTrace();
    }
    System.out.println(html);


    }
}
公共类日志测试{
公共字符串doSubmit(字符串url、映射数据)引发异常{
URL siteUrl=新URL(URL);
HttpURLConnection conn=(HttpURLConnection)siteUrl.openConnection();
conn.setRequestMethod(“POST”);
连接设置输出(真);
conn.setDoInput(真);
DataOutputStream out=新的DataOutputStream(conn.getOutputStream());
Set keys=data.keySet();
迭代器keyIter=keys.Iterator();
字符串内容=”;
for(int i=0;keyIter.hasNext();i++){
objectkey=keyIter.next();
如果(i!=0){
内容+=“&”;
}
content+=key+“=”+urlcoder.encode(data.get(key),“UTF-8”);
}
out.writeBytes(内容);
out.flush();
out.close();
BufferedReader in=新的BufferedReader(新的InputStreamReader(conn.getInputStream());
字符串行=”;
字符串html=“”;
而((line=in.readLine())!=null){
html+=行+“\n”;
}
in.close();
返回html;
}
公共静态void main(字符串[]args){
String html=“无html”;
试一试{
LogTest test=新的LogTest();
字符串url=”http://www.cupertino.schoolloop.com/portal/login?login_name=siddhantdanger&password=11616sid"
+“&event_override=login”;
映射数据=新的HashMap();
数据输入(“登录名”、“登录名”);
数据输入(“密码”、“aPass”);
data.put(“事件覆盖”、“登录”);
data.put(“etarget”、“login_form”);
html=test.doSubmit(url,数据);
}捕获(例外e){
e、 printStackTrace();
}
System.out.println(html);
}
}

我不知道为什么Android与java编译不同。至于我在Android中如何使用它(如果这会影响它的话),我只是有一个带有布局的主活动,然后我从这个主活动中调用doSubmit方法来获取html(然后将其设置为TextView或print in Toast)。我的应用程序包src文件夹只有两个类:LogTest.java(没有main方法)和MainActivity.java。上面的main方法已被移动到MainActivity.java的OnCreate()活动。

您在NetBeans中设置了代理设置吗?据我所知,没有。这都是默认设置。我相信上述代码适用于任何标准java编译器,而不仅仅是Netbeans。我刚才用了Netbeans作为例子,意思是一些不基于Android的东西。你有连接互联网的权限吗?它将是:在AndroidManifest.xmlYes中,我拥有包括在内的权限。