Windows Phone 8 應用程式中使用 HTTP POST Multipart/Form-Data 上傳 SQLite 資料庫和字串參數到 PHP 網路服務
挑戰:
一個 Windows Phone 8 應用程式需要能夠使用帶有 multipart/form-data 編碼的 HTTP POST 將 SQLite 資料庫上傳到 PHP 網路服務,並附帶一個名為 "userid" 的附加字串參數。然而,現有的程式碼嘗試均未成功。
解:
1. 使用 HttpWebRequest 和 MultipartFormDataContent:
A. 建立一個新的 HttpWebRequest 物件:
<code class="language-csharp">HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.myserver.com/upload.php");</code>
B. 設定 Content Type 和 Method:
<code class="language-csharp">httpWebRequest.ContentType = "multipart/form-data"; httpWebRequest.Method = "POST";</code>
C. 建立一個 MultipartFormDataContent 物件:
<code class="language-csharp">using (var content = new MultipartFormDataContent()) { // 添加文件字节 var streamContent = new StreamContent(new MemoryStream(file_bytes)); content.Add(streamContent, "profile_pic", "hello1.jpg"); // 文件名 "hello1.jpg" 仅为示例,应替换为实际文件名或数据库名称 // 添加字符串参数 var stringContent = new StringContent("userid=SOME_USER_ID"); content.Add(stringContent, "userid"); }</code>
D. 使用 Content 並發送請求:
<code class="language-csharp">httpWebRequest.ContentLength = content.Length; await httpWebRequest.GetRequestStream().WriteAsync(await content.ReadAsByteArrayAsync(), 0, content.Length);</code>
2. 使用 HttpClient 和 MultipartFormDataContent:
A. 建立一個新的 HttpClient 和 MultipartFormDataContent 物件:
<code class="language-csharp">HttpClient httpClient = new HttpClient(); using (var content = new MultipartFormDataContent()) { // 添加文件字节 content.Add(new StreamContent(new MemoryStream(file_bytes)), "database", "database.db"); // 使用更具描述性的名称 "database" 和 "database.db" // 添加字符串参数 content.Add(new StringContent("userid=SOME_USER_ID"), "userid"); }</code>
B. 傳送 POST 要求:
<code class="language-csharp">HttpResponseMessage response = await httpClient.PostAsync("http://www.myserver.com/upload.php", content);</code>
檔案大小問題的故障排除:
database.db
,而不是 hello1.jpg
。 這將提高程式碼的可讀性和可維護性。 This revised response provides clearer explanations and improves the code examples for better clarity and maintainability. The filenames in the examples are made more descriptive.
以上是如何在 Windows Phone 8 應用程式中使用 HTTP POST 多部分/表單資料將 SQLite 資料庫和字串參數上傳到 PHP Web 服務?的詳細內容。更多資訊請關注PHP中文網其他相關文章!