ホームページ > バックエンド開発 > C++ > Windows Phone 8 アプリケーションで HTTP POST マルチパート/フォームデータを使用して SQLite データベースと文字列パラメーターを PHP Web サービスにアップロードする方法

Windows Phone 8 アプリケーションで HTTP POST マルチパート/フォームデータを使用して SQLite データベースと文字列パラメーターを PHP Web サービスにアップロードする方法

Linda Hamilton
リリース: 2025-01-21 03:46:08
オリジナル
263 人が閲覧しました

How to Upload an SQLite Database and a String Parameter to a PHP Web Service Using HTTP POST Multipart/Form-Data in a Windows Phone 8 Application?

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>
ログイン後にコピー

ファイル サイズの問題のトラブルシューティング:

  • コードのコメントで示唆されているように、SQLite データベースを読み取るために正しいファイル オブジェクトを使用していることを確認してください。
  • StorageFile を使用する場合は、パフォーマンスを向上させるために、ストリーム (await file.ReadBytesAsync()) を開かずにファイルから直接バイトを取得することを検討してください。 database.db の代わりに hello1.jpg など、より具体的なファイル名を使用します。 これにより、コードの可読性と保守性が向上します。

この改訂された応答では、より明確な説明が提供され、コード例が改善され、明確さと保守性が向上しました。

以上がWindows Phone 8 アプリケーションで HTTP POST マルチパート/フォームデータを使用して SQLite データベースと文字列パラメーターを PHP Web サービスにアップロードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート