ホームページ > バックエンド開発 > PHPチュートリアル > Windows Phone 8 で HTTP POST マルチパート/フォームデータを使用してファイルと文字列データをアップロードする方法

Windows Phone 8 で HTTP POST マルチパート/フォームデータを使用してファイルと文字列データをアップロードする方法

Patricia Arquette
リリース: 2024-12-21 01:49:09
オリジナル
385 人が閲覧しました

How to Upload a File and String Data Using HTTP POST Multipart/Form-Data in Windows Phone 8?

Windows Phone 8 で HTTP POST マルチパート/フォーム データを使用してサーバーにファイルをアップロードする

SQLite データベースをアップロードしようとしていますmultipart/form-data MIME タイプと追加の文字列データを使用した HTTP POST リクエストを介して PHP Web サービスに送信します。 「ユーザーID=SOME_ID」ただし、現在のコードは期待どおりに動作しません。

"multipart/form-data" MIME タイプを使用すると、ファイルなどの複雑なバイナリ データとともにフォーム データを送信できます。これは、Web アプリケーションでのファイルのアップロードに広く使用されています。

Windows Phone 8 のコードで遭遇する課題を克服するには、次の組み込み関数の使用を検討してください:

  1. CreateFormBodyAsync(): この関数は、指定されたフォーム本文を作成します。 content.
  2. HttpUtility.UrlEncode(): この関数は、「userid」文字列を URL エンコードします。
  3. HttpRequest.AddString(): これ関数は「userid」文字列をリクエストに追加しますbody.

コードの改良版を次に示します。

async void MainPage_Loaded(object sender, RoutedEventArgs e)
{
    var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(DBNAME);
    byte[] fileBytes = null;
    using (var stream = await file.OpenReadAsync())
    {
        fileBytes = new byte[stream.Size];
        using (var reader = new DataReader(stream))
        {
            await reader.LoadAsync((uint)stream.Size);
            reader.ReadBytes(fileBytes);
        }
    }

    HttpPost(fileBytes);
}

private async void HttpPost(byte[] fileBytes)
{
    HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.myserver.com/upload.php");
    httpWebRequest.ContentType = "multipart/form-data";
    httpWebRequest.Method = "POST";
    using (var formBody = new HttpFormBody())
    {
        formBody.AddString("userid", HttpUtility.UrlEncode("SOME_ID"));
        httpWebRequest.AddString(formBody.CreateFormField());
    }

    using (var dataStream = await httpWebRequest.GetRequestStreamAsync())
    {
        dataStream.Write(fileBytes, 0, fileBytes.Length);
        dataStream.Close();
    }

    var asyncResult = httpWebRequest.BeginGetResponse(new AsyncCallback(GetResponseCallback), httpWebRequest);
}
ログイン後にコピー

この変更では、HttpRequest.AddString() メソッドを使用してリクエスト本文に「userid」文字列を追加します。また、ファイル バイトがリクエスト本文の末尾に追加されることも保証されます。これらの関数を使用すると、HTTP POST リクエストでファイルと追加の文字列データの両方を効果的に送信し、multipart/form-data 要件を満たすことができます。

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

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