HTTP POST Multipart/Form-Data を使用して SQLite データベースと文字列パラメーターを Windows Phone 8 アプリケーションの PHP Web サービスにアップロードします
チャレンジ:
Windows Phone 8 アプリは、「userid」と呼ばれる追加の文字列パラメーターを使用して、マルチパート/フォームデータ エンコーディングの HTTP POST を使用して、SQLite データベースを PHP Web サービスにアップロードできる必要があります。ただし、既存のコードの試みは失敗しています。
解決策:
1. HttpWebRequest と MultipartFormDataContent を使用します:
A. 新しい HttpWebRequest オブジェクトを作成します:
<code class="language-csharp">HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.myserver.com/upload.php");</code>
B. コンテンツ タイプとメソッドを設定します:
<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. コンテンツを使用してリクエストを送信します:
<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
など、より具体的なファイル名を使用します。 これにより、コードの可読性と保守性が向上します。 この改訂された応答では、より明確な説明が提供され、コード例が改善され、明確さと保守性が向上しました。
以上がWindows Phone 8 アプリケーションで HTTP POST マルチパート/フォームデータを使用して SQLite データベースと文字列パラメーターを PHP Web サービスにアップロードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。