4

Do i need to add any headers before making a post to server?

For example, Currently I'm trying to send a request along with the post data this way,

  LPCWSTR post = L"name=User&subject=Hi&message=Hi";

    if (!(WinHttpSendRequest( hRequest, 
                            WINHTTP_NO_ADDITIONAL_HEADERS,
                            0, (LPVOID)post, wcslen(post), 
                            wcslen(post), 0)))
    {
          //error
    }

should this work?

4

3 に答える 3

5

私のために働いたもの:

    LPSTR  post = "log=test";//in my php file: if(isset($_POST['log']))
    hRequest = WinHttpOpenRequest(hConnect,
                                    L"POST",
                                    L"/test.php",
                                    NULL,
                                    WINHTTP_NO_REFERER,
                                    WINHTTP_DEFAULT_ACCEPT_TYPES,
                                    0);
    bResults = WinHttpSendRequest(hRequest,
                                    L"content-type:application/x-www-form-urlencoded",
                                    -1,
                                    post,
                                    strlen(post),
                                    strlen(post),
                                    NULL);
于 2015-02-04T14:44:01.653 に答える
3

私は推測するだろう

  • 投稿データとして幅の狭い文字列を渡す必要があります。エンコードを指定する投稿されたデータのコンテンツタイプを指定しているかどうかはわかりません-簡単であればおそらく指定する必要があります-または、文字列をUTF-8として再エンコードするか、狭い文字列として組み立てるだけですそもそも
  • 投稿データに明示的な行末が必要な場合があります。つまり\r\n、(狭い) 文字列に追加します。バイナリ データに対して同じ呼び出しを行うと想定しているため、API が行末を追加するかどうかはわかりません。
于 2011-01-21T13:58:01.147 に答える
1

このMSDN ページ"POST"によると、動詞 inを使用していると仮定すると、コード サンプルが機能するように見えますWinHttpOpenRequest。うまくいかない場合は、Web ブラウザーとアプリの両方で Fiddler を実行し、両方のケースから生成されたヘッダーを比較します。

于 2011-01-21T14:37:36.617 に答える