如果是WINDOWS程序可以用用WebClient类,可以发送POST/GET/PUT请求,
http:// 211.154.223.116:3000/tysy.jsp? CorpID=xxxxxx &Phone=13012345678 & Data=17200310101
这样的话用GET方法就可以实现如果是WEB程序都话直接刷新几次就可以啦

解决方案 »

  1.   

    当然是用 Windows了
    仁兄有什么高见阿?
      

  2.   

    呵。刚好我也在做这个。看看webrequest与webresponse
      

  3.   

    use HttpWebRequest/HttpWebResponse classes in System.Net, then use classes in System.Xml to analyze the response, 用HttpRequest登录到某个网站,然后获取网站信息的程序示例
    http://www.20cn.net/ns/wz/comp/data/20020812005500.htm
      

  4.   

    .NET有专门有这个类啊,看一下.NET帮助即可!!
      

  5.   

    /// <summary>
    /// GET方式发送请求
    /// </summary>
    /// <param name="requestUrl">请求地址</param>
    /// <returns>响应字符串</returns>
    public string SendRequest( string requestUrl )
    {
    HttpWebRequest httpWebRequest = ( HttpWebRequest ) WebRequest.Create( requestUrl );
    httpWebRequest.Method = "GET";
    WebResponse webResponse = httpWebRequest.GetResponse();
    StreamReader responseStream = new StreamReader( webResponse.GetResponseStream(), System.Text.Encoding.UTF8 );
    _responseStr = responseStream.ReadToEnd();
    webResponse.Close(); 
    responseStream.Close();
    return _responseStr;
    }
      

  6.   

    本问题已经解决.揭帖了
    一下解决方法: 可编译运行看见结果,不过对于XML流的分析还有有误,由于时间关系,小生就拿返回的数据流当字符串处理了:
    using System;
    using System.Net;
    using System.Threading;
    using System.Text;
    using System.IO;
    using System.Xml;namespace BJXMLTest
    {
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    // RequestState 类用于通过
    // 异步调用传递数据
    public class RequestState
    {
    const int BUFFER_SIZE = 1024;
    public StringBuilder RequestData;
    public byte[] BufferRead;
    public HttpWebRequest Request;
    public Stream ResponseStream;
    // 创建适当编码类型的解码器
    public Decoder StreamDecode = Encoding.Default.GetDecoder(); public RequestState()
    {
    BufferRead = new byte[BUFFER_SIZE];
    RequestData = new StringBuilder("");
    Request = null;
    ResponseStream = null;
    }
    } // ClientGetAsync 发出异步请求
    class ClientGetAsync
    {
    public static ManualResetEvent allDone = new ManualResetEvent(false);
    const int BUFFER_SIZE = 1024;

    public static void Main(string[] args)
    {
    //修改或给此字符串作循环,以连续的发送和接受数据流
    string  HttpUrl="http://211.154.223.116:3000/tysy.jsp?CorpID=1&Phone=13012345678&Data=17200310101";
    // 从命令行获取 URI
    Uri HttpSite = new Uri(HttpUrl); // 创建请求对象
    HttpWebRequest wreq = (HttpWebRequest) WebRequest.Create(HttpSite); // 创建状态对象
    RequestState rs = new RequestState(); // 将请求添加到状态,以便它可以被来回传递
    rs.Request = wreq; // 发出异步请求
    IAsyncResult r = (IAsyncResult) wreq.BeginGetResponse(new AsyncCallback(RespCallback), rs); // 将 ManualResetEvent 设置为 Wait,
    // 以便在调用回调前,应用程序不退出
    allDone.WaitOne();
    } private static void RespCallback(IAsyncResult ar)
    {
    // 从异步结果获取 RequestState 对象
    RequestState rs = (RequestState) ar.AsyncState; // 从 RequestState 获取 HttpWebRequest 
    HttpWebRequest req = rs.Request; // 调用 EndGetResponse 生成 HttpWebResponse 对象
    // 该对象来自上面发出的请求
    HttpWebResponse resp = (HttpWebResponse) req.EndGetResponse(ar); // 既然我们拥有了响应,就该从
    // 响应流开始读取数据了
    Stream ResponseStream = resp.GetResponseStream(); // 该读取操作也使用异步完成,所以我们
    // 将要以 RequestState 存储流
    rs.ResponseStream = ResponseStream; // 请注意,rs.BufferRead 被传入到 BeginRead。
    // 这是数据将被读入的位置。
    IAsyncResult iarRead = ResponseStream.BeginRead(rs.BufferRead, 0, BUFFER_SIZE, new AsyncCallback(ReadCallBack), rs);
    }
    private static void ReadCallBack(IAsyncResult asyncResult)
    {
    // 从 asyncresult 获取 RequestState 对象
    RequestState rs = (RequestState)asyncResult.AsyncState; // 取出在 RespCallback 中设置的 ResponseStream
    Stream responseStream = rs.ResponseStream;
            
    // 此时 rs.BufferRead 中应该有一些数据。
    // 读取操作将告诉我们那里是否有数据
    int read = responseStream.EndRead( asyncResult ); if (read > 0)
    {
    // 准备 Char 数组缓冲区,用于向 Unicode 转换
    Char[] charBuffer = new Char[BUFFER_SIZE];
                
    // 将字节流转换为 Char 数组,然后转换为字符串
    // len 显示多少字符被转换为 Unicode
    int len = rs.StreamDecode.GetChars( rs.BufferRead, 0, read, charBuffer, 0 );
    String str = new String( charBuffer, 0, len);              // 将最近读取的数据追加到 RequestData stringbuilder 对象中,
    // 该对象包含在 RequestState 中
    rs.RequestData.Append(str);
                 // 现在发出另一个异步调用,读取更多的数据
    // 请注意,将不断调用此过程,直到 
    // responseStream.EndRead 返回 -1
    IAsyncResult ar = responseStream.BeginRead( rs.BufferRead, 0, BUFFER_SIZE, new AsyncCallback(ReadCallBack), rs);
    }
    else
    {
    if(rs.RequestData.Length>1)
    {
    // 所有数据都已被读取,因此将其显示到控制台
    string strContent;
    strContent = rs.RequestData.ToString(); //Console.WriteLine(strContent.Trim().ToString()); string MsgData="Phone="+MidStr("phone",strContent)+"\n"+"Data="+MidStr("data",strContent)+"\n"+"Data-Id="+MidStr("data-id",strContent); Console.WriteLine(MsgData.ToString());

    //==================================以XML方式处理流时,有问题.所以我把返回值当字符串处理的==============================
    // XmlNodeReader nreader = null;
    // try
    // {
    // XmlDocument exampledoc = new XmlDocument();
    // exampledoc.Load(strContent.Trim().ToString());
    // XmlNode name = exampledoc.SelectSingleNode
    // ("/csjx-service/data");  ///单个读取节点值
    // if(name!= null)
    // {
    // nreader = new XmlNodeReader(name);
    // while(nreader.Read())
    // {
    // Console.Write (nreader.Value);
    // Console.Write (nreader.Name+" ");
    // }
    // }
    // }
    // finally
    // {
    // if(nreader!=null)
    // nreader.Close();
    // }
    } // 关闭响应流
    responseStream.Close(); // 设置 ManualResetEvent,以便主线程可以退出
    allDone.Set();
    }
    return;
    }
    /// <summary>
    /// 返回两个字符串节点之间的字符串
    /// </summary>
    /// <param name="NodeStr">字符节点</param>
    /// <param name="StreamStr">数据流</param>
    /// <returns>返回的提取的字符串</returns>
    public static  string  MidStr(string NodeStr,string StreamStr)
    {
    int StarStr = (StreamStr.Trim()).IndexOf("<"+NodeStr.Trim()+">");
    int StopStr = (StreamStr.Trim()).IndexOf("</"+NodeStr.Trim()+">");
    string MidStr = (StreamStr.Trim()).Substring(StarStr+NodeStr.Length+2,StopStr-StarStr-NodeStr.Length-2);
    return MidStr;
    }

    }
    }