余小章 @ 大內聖殿
祕訣無它, 唯勤而已, by 余小章

导航

 

上篇已經提到如何利用序列化產生Xml文件([XML][C#.NET] 處理 ezTRACK 的 EPCIS Xml文件),這篇是說明如何將Xml文件上傳到ezTRACK

先建立起方法模組:

public bool Upload(string FileName)
{
    if (string.IsNullOrEmpty(FileName))
        throw new ArgumentNullException("FileName");
    if (!File.Exists(FileName))
        throw new FileNotFoundException("FileName");

    string fileName = FileName;
    string serverUrl = "ezTRACK網址";
    string account = "帳號";
    string password = "密碼";

    Stream requestStream = null;
    FileStream fileStream = null;

    HttpWebRequest uploadRequest = null;
    HttpWebResponse uploadResponse = null;
    //忽略驗証
    ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
    try
    {
        //DOTO:1.Create WebRequest
        //DOTO:2.Creat Request Stream
        //DOTO:3. Write Request Stream
    }
    catch
    {
        throw;
    }
    finally
    {
        if (uploadResponse != null)
            uploadResponse.Close();

        if (fileStream != null)
            fileStream.Close();

        if (requestStream != null)
            requestStream.Close();
    }
}

DOTO:1.所要做的是建立WebRequest

uploadRequest = WebRequest.Create(serverUrl) as HttpWebRequest;
uploadRequest.Method = "POST";
//uploadRequest.Method = WebRequestMethods.Http.Post;
uploadRequest.ContentType = "application/soap+xml; charset=utf-8";
uploadRequest.Credentials = new NetworkCredential(account, password);

DOTO:2.所要做的是建立RequestStream,把硬碟裡的檔案讀進來

requestStream = uploadRequest.GetRequestStream();
fileStream = File.Open(fileName, FileMode.Open);

byte[] buffer = new byte[1024];
int bytesRead;
while (true)
{
    bytesRead = fileStream.Read(buffer, 0, buffer.Length);
    if (bytesRead == 0)
        break;
    requestStream.Write(buffer, 0, bytesRead);
}

DOTO:3. 當 Request Stream 關閉後就寫入到 Server,利用HttpStatusCode判斷是否上傳成功

requestStream.Close();

uploadResponse = uploadRequest.GetResponse() as HttpWebResponse;
if (uploadResponse.StatusCode == HttpStatusCode.OK)
    return true;
else
    return false;
posted on 2011-12-27 15:18  余小章  阅读(152)  评论(0编辑  收藏  举报