从android中的网站获取数据
我在WindowsPhone8/8.1中开发了一个应用程序,现在我正在尝试为android用户开发。我正在从网站获取数据并显示在我的应用程序中。该网站需要登录用户名、密码。我在C#中成功地实现了它。但是我不能用java来做。能给我一些指导吗 我的C#代码:从android中的网站获取数据,android,Android,我在WindowsPhone8/8.1中开发了一个应用程序,现在我正在尝试为android用户开发。我正在从网站获取数据并显示在我的应用程序中。该网站需要登录用户名、密码。我在C#中成功地实现了它。但是我不能用java来做。能给我一些指导吗 我的C#代码: HttpClientHandler handler=new-HttpClientHandler(); HttpClient=新的HttpClient(handler,false); handler.AllowAutoRedirect=true
HttpClientHandler handler=new-HttpClientHandler();
HttpClient=新的HttpClient(handler,false);
handler.AllowAutoRedirect=true;
handler.PreAuthenticate=true;
Uri vCURI=新Uri(“http://xxxx/default.aspx");
var html=await client.GetStringAsync(siteURI);
var doc=new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);
var viewstateNode=doc.GetElementbyId(“\uu VIEWSTATE”);
var eventvalidationNode=doc.GetElementbyId(“\uu EVENTVALIDATION”);
var viewstate=viewstateNode.GetAttributeValue(“值”,“值”);
var-eventvalidation=eventvalidationNode.GetAttributeValue(“值”,“值”);
var formContent1=new FormUrlEncodedContent(new[]
{
新的KeyValuePair(“\uuuViewState”,VIEWSTATE),
新的KeyValuePair(“\uuuEventValidation”,EVENTVALIDATION),
新的KeyValuePair(“txtLoginID”,_用户名),
新的KeyValuePair(“txtPWD”、_pswd),
新的KeyValuePair(“btnLogin”、“Go%21”)
});
var outputDoc=wait client.PostAsync(“http://xxx/default.aspx“,formContent1);
html=await outputDoc.Content.ReadAsStringAsync();
doc.LoadHtml(html);
//解析(doc);
var studentinfo=doc.GetElementbyId(“divStudInfo”);
var_studentinfo节点1=studentinfo节点.ChildNodes;
var studentInfo=studentInfo.ChildNodes[0].ChildNodes;
上述studentInfo对象包含必需的数据
我尝试使用HttpClient+HttpPost,但最终出现空异常:(
如果有人曾经在类似的应用程序上工作过,你能帮助我吗
谢谢你为什么发布你的C#代码?java代码、堆栈跟踪和空指针异常行的指示显示了你在收到错误时为应用程序和Logcat输出尝试的java代码。我没有取得什么进展。现在我可以使用以下代码段获取页面的HTML代码。HttpClient=new DefaultHttpClient();HttpGet请求=新建HttpGet(url);HttpResponse响应=客户端。执行(请求);InputStream in=响应。getEntity().getContent();BufferedReader reader=新建BufferedReader(新建InputStreamReader(in));StringBuilder str=新建StringBuilder();字符串行=null;而((line=reader.readLine())!=null){str.append(line);}in.close();html=str.toString();
HttpClientHandler handler = new HttpClientHandler();
HttpClient client = new HttpClient(handler, false);
handler.AllowAutoRedirect = true;
handler.PreAuthenticate = true;
Uri vceURI = new Uri("http://xxxx/default.aspx");
var html = await client.GetStringAsync(siteURI);
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);
var viewstateNode = doc.GetElementbyId("__VIEWSTATE");
var eventvalidationNode = doc.GetElementbyId("__EVENTVALIDATION");
var viewstate = viewstateNode.GetAttributeValue("value", "");
var eventvalidation = eventvalidationNode.GetAttributeValue("value", "");
var formContent1 = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("__VIEWSTATE", viewstate),
new KeyValuePair<string, string>("__EVENTVALIDATION", eventvalidation),
new KeyValuePair<string,string>("txtLoginID",_username),
new KeyValuePair<string,string>("txtPWD",_pswd),
new KeyValuePair<string,string>("btnLogin","Go%21")
});
var outputDoc = await client.PostAsync("http://xxx/default.aspx", formContent1);
html = await outputDoc.Content.ReadAsStringAsync();
doc.LoadHtml(html);
// parsing(doc);
var studentInfoNode = doc.GetElementbyId("divStudInfo");
var _studentinfonode1 = studentInfoNode.ChildNodes;
var studentInfo = studentInfoNode.ChildNodes[0].ChildNodes;