68

Web サービス コンポーネントを備えたこのソフトウェアがあります。

今、このシステムの管理者が私のところに来て、webservices コンポーネントを使用してシステムにデータをインポートしたいと考えています。

そのため、ドキュメントを読んでこのことを理解しようとしたところ、次のようなことがわかりました。


ここをクリックして、私が話していることを確認してください (これは、Firefox、Chrome、および Safari で最適に表示されます)

そのドキュメントには、GET、POST、PUT、DELETE などの HTTP 動詞を使用してシステムと対話する例が示されています。しかし、私の限られた経験では、HTTP PUT も DELETE も送信する必要はありませんでした。

どのようにしますか?method="post" または method="get" を持つ HTML フォームを作成しましたが、アクション属性 (action="someResource") で指定されたものにリクエストが送信されます。しかし、私はこの PUT のことをどうすればよいか本当にわかりません。

推測する必要がある場合は、ある種の HTTP Request オブジェクトを作成し、そのすべてのプロパティを設定し、リソースに PUT したいデータを何らかの方法で含めるアプリケーションを構築する必要があります (


私はREST用語を使用しようとしていますが、これは私にとって非常に新しいものです
)。次に、プログラミング言語と何とか何とかを使用してリクエストを送信します。私はこれについて推測しているだけです。助けてください!

XHTML、CSS、JavaScript などを知っているので、自分は Web 開発者だと思っていましたが、Web の基礎 (HTTP) について何も知らないように見え始めています。

編集

PS: 私は主に .net でプログラミングしています。したがって、.net の例はどれもすばらしいものです。

4

11 に答える 11

23

HttpWebRequest を使用した C# の例を次に示します。

using System;
using System.IO;
using System.Net;

class Test
{
        static void Main()
        {
                string xml = "<xml>...</xml>";
                byte[] arr = System.Text.Encoding.UTF8.GetBytes(xml);
                HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://localhost/");
                request.Method = "PUT";
                request.ContentType = "text/xml";
                request.ContentLength = arr.Length;
                Stream dataStream = request.GetRequestStream();
                dataStream.Write(arr, 0, arr.Length);
                dataStream.Close();
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                string returnString = response.StatusCode.ToString();
                Console.WriteLine(returnString);
        }
}

更新: System.Net.Http に HttpClient クラス ( NuGet パッケージとして利用可能) が追加され、これが少し簡単になりました。

using System;
using System.Net.Http;

class Program
{
    static void Main()
    {
        var client = new HttpClient();
        var content = new StringContent("<xml>...</xml>");
        var response = client.PutAsync("http://localhost/", content).Result;
        Console.WriteLine(response.StatusCode);
    }
}
于 2009-05-01T21:35:02.137 に答える
8

CURL でそれを行う方法は次のとおりです。cURL を使用して RESTful Rails をテストする方法

または... HTML フォームを使用することもできます。アプリが真に RESTful である場合、アプリは REST アクションを理解し、使用するメソッドに基づいて特定のアクションのみを実行できます。

于 2009-05-01T18:56:26.527 に答える
6

RESTClientという非常にクールなフリー ソフトウェアを見つけました。

さまざまな動詞を使用して HTTP リソースとやり取りしたり、ヘッダーと本文を手動で設定したり、認証情報や ssl を設定したり、テスト スクリプトを実行したりできます。

これは、ソフトウェアのデータベースに対する単なる RESTful API である「Web サービス」ソフトウェアと対話する方法を理解するのに役立ちます。

于 2009-05-04T19:13:52.077 に答える
2

API を Chrome 拡張としてテストする https://chrome.google.com/webstore/detail/fdmmgilgnpjigdojojpjoooidkmcomcm

于 2012-09-17T10:58:25.850 に答える
1

libcurl.NETを試してみてはどうでしょうか:http ://sourceforge.net/projects/libcurl-net/

于 2010-02-10T07:01:23.033 に答える
1

「今、このシステムの管理者が私のところに来て、webservices コンポーネントを使用してデータをシステムにインポートしたいと考えています。」

Web サービスは、HTML フォームとはほとんど関係がありません。

Web サービスのリクエストは、Javascript (Ajax など) から実行されるか、アプリケーション プログラムから実行されます。

HTTP を使用して、指定されたデータ セットで指定された Web サービス URL に Put を実行する C# または VB プログラムを作成します。

たとえば、次のサンプル VB コードがあります: http://developer.yahoo.com/dotnet/howto-rest_vb.html#post

「POST」のメソッド文字列を「PUT」に置き換えます。

于 2009-05-01T19:29:42.500 に答える
1

これは、 PUTファイルにドラッグ アンド ドロップできるツールです。

于 2009-05-01T19:02:40.740 に答える
0

PUTとDELETEはHTML4の一部ではありませんが、HTML5仕様に含まれています。このため、ほとんどの人気のあるブラウザはHTML4に重点を置いているため、それらを適切にサポートしていません。ただし、これらは間違いなくHTTPの一部であり、常にそうなっています。ブラウザー以外のクライアントを使用するか、HTML5対応のブラウザーでフォームを使用してPUTを実行します。

更新:PUTとDELETEはフォームのHTML5の一部ではなくなりました。参照:http ://www.w3.org/TR/html5/association-of-controls-and-forms.html#attr-fs-method

于 2009-07-20T22:21:17.930 に答える
0

一部のネットワーク管理者は、さまざまな理由でプットをブロックしています。そのため、PUT の代わりに POST を使用する必要がある場合があります。操作で確認してください。

于 2009-05-01T18:53:09.420 に答える