关于windows phone教务在线客户端

本人是个大二学生,由于学校的教务在线一直没出windows phone的教务在线,而且本身也对wp开发感兴趣,所以就尝试着开发一下

由于没有系统的学习,只能在摸索中前进,这背后的原理很简单,可不容易实现,网上也没合适的教程,下面是本人尝试着写登录页面的代码,

不过还是有些语法上的问题,希望有贵人相助

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using System.Collections.Specialized;
using System.Text;
using System.Xml.Linq;
using System.Threading.Tasks;

// “空白页”项模板在 http://go.microsoft.com/fwlink/?LinkId=391641 上有介绍

namespace App3
{
    /// <summary>
    /// 可用于自身或导航至 Frame 内部的空白页。
    /// </summary>
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();

            this.NavigationCacheMode = NavigationCacheMode.Required;
        }

        //这是一个按钮的事件,点击时会登录教务在线,并跳转到另一个页面上显示课程信息
        private void button_Click(object sender, RoutedEventArgs e)
        {
            //这是想调用下面的方法,不知对不对,希望园友相助
            AsyncCallback callBack = new AsyncCallback(ReadCallback);

        }

        private void ReadCallback(IAsyncResult asynchronousResult)
        {

            //这是登录页面的uri
            string loginuri = "http://60.18.131.131:11080/newacademic/common/security/login.jsp";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(loginuri);
            //设置post的一些信息
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            request.Credentials = new NetworkCredential(textBox1.Text, passwordBox.ToString());

            HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
            //获取cookie
            CookieCollection cookies = response.Cookies;            

            //这是已经登录的uri
            string posturl = "http://60.18.131.131:11080/newacademic/j_acegi_security_check";
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(posturl);
            //req.CookieContainer = new CookieContainer();
            //req.CookieContainer.Add(posturl,response.Cookies);
            //cookie是如何加入到请求头里去的还有待探讨
            req.Headers["Cookie"] = cookies.ToString();
            //这里我拿到返回的stream
            Stream stream = req.EndGetRequestStream(asynchronousResult);
            StreamReader sr = new StreamReader(stream);
            string content = sr.ReadToEnd();
            //把stream放置到另一个页面里
            Frame.Navigate(typeof(BlankPage1),content);

        }

逻辑上大致是先模拟登陆,然后拿到cookie,再带着这个cookie访问登陆上的网页,(然后通过解析html获取自己想要的内容,这部分还没做)

不过还有一些问题,希望有经验的园友指导一下

时间: 2024-10-29 04:06:37

关于windows phone教务在线客户端的相关文章

Windows phone8.1教务在线客户端

本人是个大二学生,由于学校的教务在线一直没出windows phone的教务在线,而且本身也对wp开发感兴趣,所以就尝试着开发一下 由于没有系统的学习,只能在摸索中前进,这背后的原理很简单,可不容易实现,网上也没合适的教程,下面是本人尝试着写登录页面的代码, 不过还是有些语法上的问题,希望能帮看看 using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Net;usi

windows phone 8.1教务在线(后续)

经过了一番折腾,这个wp教务在线算是告一段落了,其实原理很简单,就是post方式访问登陆页面返回cookie,然后带着这个cookie用get方式继续访问你想要访问并取回内容的页面,而且httpclient会默认保存cookie的,这个关键我一开始就没搞清,以至于走了弯路,, ok,这个项目我只是登陆并且获取了我想要的html内容,至于解析html,可以用正则表达式,等以后有时间再研究吧 下面是源码: 1 using Windows.UI.Xaml.Controls.Primitives; 2

【windows socket+HTTP服务器客户端】

Windows Socket+HTTP服务器客户端 Winsock是 Windows下套接字标准.                 1.HTTP协议:          HTTP是基于客户端/服务器的请求,响应协议.        请求:由客户端向服务器发起,指定了要从服务器获取的资源.请求包含了协议首部,指明了客户端处理能力信息,如可以处理的文件类型,支持的语言,编码方式等.        响应:服务器收到客户端的请求后,解析这个请求,构造响应,并发送给客户端.响应同样包含了协议首部,指明了服

【windows socket+UDP服务器客户端】

Windows Socket+UDP服务器客户端 Winsock是 Windows下套接字标准.                    1.UDP socket编程:          UDP(用户数据报协议)是一个无连接,不可靠的数据传输,其特点是简单,快捷.相比与TCP,UDP不需要建立连接(不需connect.accept函数),数据发送接收之后,不需要终止连接.基于UDP的程序,避免了TCP运行的开销,在效率与速度上具有更好的表现.          UDP是无连接的,可能会有数据的丢失

【windows socket编程+服务器客户端】

Windows Socket编程与服务器客户端示例 Winsock是 Windows下套接字标准. Socket套接字基于计算机网络,提供同一系统上不同进程或由局域网连接在一起的不同机器上的进程间通讯功能.如下图: 套接字通过IP地址,Port端口号标识,通过这个标识可以在整个局域网定位一个套接字,通过套接字进程便可以相互传输数据.如:进程A与进程B之间欲通过套接字通信,首先进程A创建一个有IP地址,端口号唯一标识的套接字,进程B同样创建一个有IP地址,端口号唯一标识的套接字,进程A,B便可以通

windows系统内置ftp客户端和相关命令

目的:学会使用windows系统内置ftp客户端和相关命令. 环境:windows 7 情景:多个设备需要备份它们的配置文件,设置为明天自动备份,以FTP服务下载到服务器,并以日期保存. 这里需要使用FTP服务,这个服务一般系统都自带有,可以使用命令模式,或写成批处理脚本运行. ftp命令支持交互和执行配置操作: 有如下参数: -v              禁止显示远程服务器响应. -n              禁止在初始连接时自动登录. -i              关闭多文件传输过程中

Windows系统安装Oracle 11g客户端

一.下载 http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html以下两网址来源此官方下载页网. win 32位操作系统 下载地址:http://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2_client.zip 二.安装oralce客户端 1.点击setup.exe进行安装 2.指定安装位置 3.执行先决条件检查 4.概要

(图解)windows下的mysql客户端mysqlworkbench 链接虚拟机上CentOS的mysql服务器

本人在虚拟机上CentOS的Linux环境下安装了mysql服务器,在本地Windows下安装了mysql的客户端mysqlworkbench ,所以就想让windows下的mysql客户端mysqlworkbench 链接虚拟机上CentOS的mysql服务器,整个过程记录如下: 一.安装客户端Mysql WorkBench 1.下载安装包:mysql-workbench-community-6.2.5-winx64.msi 下载路径:http://dev.mysql.com/download

编译ngrok的Windows、Mac的客户端

ngrok是一个ddns服务,为内网机器绑定一个公网域名,方便开发调试远程接口(如微信开发). 之前博文里面写过如何安装ngrok,但是由于公司里面的研发工程师的笔记本有windows本和mac本,所以本次主要讲怎么生成windows.mac客户端. 准备工作:需要参考http://nanchunle.blog.51cto.com/9244770/1710295,安装完成ngrok 一.编译Windwos客户端 cd /usr/local/go/srcGOOS=windows GOARCH=am