none
请问为何接收不到数据??急急! RRS feed

  • 常规讨论

  • using System;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using System.Net;
    using System.IO;
    using System.Text;


    public partial class _Default : System.Web.UI.Page
    {

        protected void Page_Load(object sender, EventArgs e)
        {
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://upload.docin.com/uploaddoc");
            req.Method = "post";
            req.ContentType = "application/x-www-form-urlencoded";
           
            FileStream fs = new FileStream(Server.MapPath("~/upload/属性的理解.doc"), System.IO.FileMode.Open, System.IO.FileAccess.Read);
            byte[] SomeBytes = Encoding.Default.GetBytes("Filedata=" + fs.Name + "&title=aaaa&desc=bbbb&pcatid=5&catid=6&userId=5163404_155198002&keyword=aaa");
            req.ContentLength = SomeBytes.Length;
            Stream newStream = req.GetRequestStream();
            newStream.Write(SomeBytes, 0, SomeBytes.Length);
            newStream.Close();


            HttpWebResponse res = (HttpWebResponse)req.GetResponse();
            StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.Default);
            string backstr = sr.ReadToEnd();
            sr.Close();
            res.Close();

            Response.Write(backstr);


        }
    }


    XSINA他来了~
    2010年3月6日 7:14

全部回复

  • 有一高手用java实现了,可他不会用.net ,5555555555~~~

    这是他写的代码:
    public class TestUtil {
    @SuppressWarnings("deprecation")
    public static void main(String args[]){
    try{
    HttpClient hc = new HttpClient();
    MultipartPostMethod method = new MultipartPostMethod("http://upload.docin.com/uploaddoc");
    method.addParameter("Filedata", "dup.txt", new java.io.File("f://dup.txt"));
    method.addParameter("title", "aaaa");
    method.addParameter("desc", "bbbb");
    method.addParameter("pcatid", "5");
    method.addParameter("catid", "6");
    method.addParameter("userId", "5163404_155198002");
    method.addParameter("keyword", "aaa");
    hc.executeMethod(method);
    System.out.println(method.getResponseBodyAsString());
    }catch(Exception ex){
    ex.printStackTrace();
    }

    }
    }


    XSINA他来了~
    2010年3月6日 7:29
  • 你好,你是想把代码那个文件通过 WebRequest 发送出去吧。

    看你定义了一个 fs 变量来存储文件的输入流。但注意到你下面的代码中,用到这个流的地方却只有一个:fs.name (在  byte[] SomeBytes  开头的那一行),也就是说你的代码中没有将文件流传递给负责存储需要发送的数据的变量 SomeByte 中。因此无法将数据传递出去。

    你应该将 httpwebrequest 头信息发送完毕后,紧接着发出文件流,再发出 httpwebrequest 的尾信息

    这样,整个 request 才算圆满地完成了

    2010年3月22日 5:47
  • 使用 System.Net.WebClient 的 UploadFile 方法, 很简单的.

     

    2010年3月22日 9:15