HTTPインターフェイスと差Webサービスインタフェース

Webサービス(SOAP)およびHTTPインターフェースの違いの
ウェブサービスは何か?SOAP要求は、HTTP POSTの特殊なバージョンで、特別にメッセージ形式のXMLコンテンツ・タイプを次のよう:text / xmlでのXMLは、任意のデータにすることができます。
なぜWebサービスを学びますか?ほとんどの外部インタフェースではなく、HTTPメソッドのあなたがいない場合、は、ドッキングする方法はありませんWebサービスメソッドを実装します。
Webサービス比較的HTTP(POST / GET)全体?
一目でインターフェイスと必要なパラメータで実装方法
2.時価総額を心配していない
中国でurlencodeを心配する3.問題
4.認証コードを繰り返さない文(口座番号、パスワード)パラメータ
パラメータ等、配列、オブジェクト、として渡すことができます...
Webサービス比較的HTTP(POST / GET)速いですか?
起因するのXML解析、速度が低減することができます。
Webサービスは、それに対してHTTP(POST / GET)代替することができますか?
完全に、そして今、オープンなプラットフォームは、HTTP(POST / GET)の実装で使用されています。

 

このリンクします。https://blog.csdn.net/riemann_/article/details/90708947


A、Webサービスの概念

Webがプラットフォームに依存しないプログラミング言語や技術で相互に通信する方法とすることができるアプリケーションです。Webサービスは、標準化されたXMLメッセージのセットを記述するソフトウェアインターフェイスは、ネットワーク・オペレーティング・アクセスを介して配信することが可能です。これは、記述するためのXMLベースのプロトコルで動作して言語を使用するか、または別のWebサービスのデータ交換を実行します。このように相互作用して、サービス指向アーキテクチャ(サービス指向アーキテクチャ、SOA)での特別なWebサービス・アプリケーションを定義するWebサービスのセット。

単にWebServiceがSOA(サービス指向プログラミング)アーキテクチャである、それは言語に依存しない、プラットフォームに依存しないで入れ、(XML記述によって)異なる言語で達成することができるお互いを呼び出すと、インターネットベースのHTTPプロトコルを介してネットワークアプリケーションの間の相互作用。Web上で利用できるソフトウェアを介してSOAPサービスは、WSDLファイルを使用して記述し、UDDIで登録されています。

XML:(拡張マークアップ言語)は、マークアップ言語を拡張します。一時的な短期指向のデータ処理は、ワールド・ワイド・ウェブのために、石鹸の基本です。

ソープ:(簡易オブジェクトアクセスプロトコル)簡易オブジェクトアクセスプロトコル。XML Webサービスの通信プロトコルです。ユーザーがUDDIしてWSDL記述文書を見つけた場合、SOAP彼はあなたがして、1回の以上の操作で作成したWebサービスを呼び出すことができます。SOAPは、XML文書を呼び出す標準化された方法であり、それは、HTTP(S)またはSMTPのような異なる基礎となるインタフェースをサポートすることができます。

WSDL(Webサービス記述言語)WSDLファイルは、SOAPメッセージのセットとどのようにこれらのメッセージを交換することを示すために使用されるXML文書です。自動的に生成され、ほとんどの場合、ソフトウェアが使用します。

UDDI(汎用の説明、発見、および統合)は、新しいWebサービス・プロバイダーとユーザーのための主要なプロジェクトです。ユーザーがWebサービスを呼び出すことができます前に、あなたは、このサービスに含まれたビジネス方法を決定するインタフェース定義が呼び出され見つけ、だけでなく、コンパイルするサーバソフトウェアでは、UDDIは、システムを起動するためのメカニズムに基づいて適切なサービスを見つけるために文書で説明しなければなりません。UDDIの使用SOAPメッセージングは​​、(標準のXML / HTTP)、編集、閲覧を公開し、登録情報を検索します。これは、データの異なるさまざまな種類のパッケージ化、およびレジストリでレジストリに送信するか、必要なデータを返すようにするためにXML形式を使用しています。

二、Webサービスのインタフェースのテスト

テストWebサービス・インターフェースは、Webサービス・インターフェースを呼び出すために、次の簡単なあるsoapUIを使用し、テストのためにあるsoapUIを使用することができます。

1.あるsoapUI、新しい石鹸プロジェクト:

 

2.私たちは、たとえば、インポート・インターフェース情報あるsoapUIは、それらのすべてを見るために、天気予報に対応するWSDL。

WSDLアドレスhttp://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

 

図3に示すように、インターフェースやメッセージを表示するために、入力パラメータを直接呼び出します

 

 

メッセージを送信:

<soapenv:封筒のxmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/"のxmlns:ウェブ= "http://WebXml.com.cn/">
<soapenv:ヘッダー/>
<soapenv: BODY>
<ウェブ:getSupportCity>
< -オプション:! - >
<ウェブ:byProvinceName>北京</ウェブ:byProvinceName>
</ウェブ:getSupportCity>
</ soapenv:BODY>
</ soapenv:封筒>
1
2
3
4
5
6
7
8
9
返回报文:

<SOAP:エンベロープのxmlns:SOAP = "http://schemas.xmlsoap.org/soap/envelope/"のxmlns:XSI = "http://www.w3.org/2001/XMLSchema-instance"のxmlns:XSD =」 http://www.w3.org/2001/XMLSchema ">
<ソープ:ボディ>
<getSupportCityResponseのxmlns =" http://WebXml.com.cn/ ">
<getSupportCityResult>
<文字列>北京(54511)</文字列>
<ストリング>上海(58367)</文字列>
<ストリング>天津(54517)</文字列>
<ストリング>重庆(57516)</文字列>
</ getSupportCityResult>
</ getSupportCityResponse>
</ SOAP:BODY>
</石鹸:封筒>
。1
2
3
4
5
6
7
8
9
10
11
12は、
図1に示すように、ルート要素:エンベロープ。

2は、Header要素は必須ではありません::プログラマによって制御が表示されますが、主に、ユーザー名、パスワードなど、いくつかの追加情報を運ぶために使用されています

3、本体:正しい呼び出し、body要素の内容は、WSDLフォーマットの要求事項に適合しなければなりません。

三、HTTPインタフェース

HTTPの合意は、WebブラウザがHTTPリクエストが発行されるときにサーバーからデータを取得する必要がある場合、TCPプロトコルに基づいて、上に構築されています。HTTPは、データがこの要求を完了するために必要なときに、HTTPはただちにTCP接続を切断しますが、このプロセスは非常に短く、サーバーへのTCPチャネルを介して接続を確立します。HTTP接続はステートレスに接続されているので、接続されて短いです。

次のようにHTTPプロトコルの主な特徴を要約することができます。

1.サポートするクライアント/サーバモデル。
2.シンプルかつ高速:サーバーへの顧客サービス要求、代わりにリクエストメソッドとパスを送ります。リクエスト方法は、一般的にGET、HEAD、POSTを使用していました。各メソッドは、クライアントはサーバーの異なる種類を提供します。シンプルなHTTPプロトコルのためには、HTTPサーバーは、プログラム小規模になりますので、コミュニケーションは非常に高速です。
3.フレキシブル:HTTPデータ・オブジェクトの任意のタイプの送信を可能にします。コンテンツタイプでマークされている伝送のタイプです。
4.接続なし:なし制限を意味しないが、接続ごとに1つだけの要求を取り付けていません。サーバがクライアントの要求を処理し、顧客の応答を受信した後、すなわち、切断。このようにして、送信時間を節約することができます。
5.ステートレス:HTTPプロトコルはステートレスなプロトコルです。いかなる状態は、トランザクション処理とメモリのためのプロトコルではありません。接続ごとに送信されるデータの量をもたらすことができる情報の前に必要なその後の処理は、それが再送信されなければならないことを状態手段の欠如は、増加された場合。一方、それはより速く、サーバーに応じて、以前の情報を必要としません。

URL解析

WWW上で、それぞれがそれがネットワークアドレスを参照し、アドレスがユニフォームリソースロケータ兆候WWWをあるURL(ユニフォームリソースロケータ、ユニフォームリソースロケータ)と呼ばれ、統一された情報リソースとのみインターネットアドレスを持っています。トップ上のサーバアーキテクチャ - HTTPプロトコルは、クライアント上で動作します。WEBサーバであるHTTPクライアントのURLなどのブラウザは、HTTPを介してサーバにすべての要求を送信します。Webサーバは、受信した要求に応じて、クライアントへの応答情報を送信します。

リソースの種類、ホストドメイン名のストレージリソース、リソースファイル名:URLは、3つの部分から構成されています。

一般的な構文のURL形式(角括弧[]はオプションです)。

プロトコル/ホスト名[:ポート] /パス/ [;パラメータ] #fragment?[クエリ?]

次の例のURL:

http://blog.sina.com.cn/s/blog_537ad6610102xtb1.html?tj=hist

1、契約の一部は、httpプロトコルを使用して、ページに代わって、あなたは、HTTP、FTPなど、インターネットでさまざまなプロトコルを使用して、というようにすることができます。セパレータとして「//」の後ろに「HTTP」で。

図2に示すように、ドメイン名の一部が、blog.sina.com.cnは、また、IPアドレスなど、ドメイン名として使用してもよい:192.168.55.14:8080 8080は、ポート、およびドメイン名の間に使用されるポートである「:」区切り文字として。ポート部分が省略されている場合、ポートは、デフォルトのポート80 / tcpのURLの必要な部分ではありません。

3、最初の後のドメイン名から、仮想ディレクトリセクション、「/」最後に始まる「/」これまでのところ、仮想ディレクトリセクションです。仮想ディレクトリは、URLの必要な部分ではありません。本実施例では、「/ sの/」仮想ディレクトリです

4、ファイル名の一部:いない場合は、最後から、ドメイン名の後には、「/」日に始まり、ファイル名の一部であり、それはこれまでに「#」に始まる「/」ドメイン名の後に、最後からです「」「?」? 、何も「?」や「#」がない場合は、最後からドメイン名は「/」フィニッシュを開始、それはファイル名の一部で、ファイルの一部です。この場合、ファイル名は「blog_537ad6610102xtb1.html」です。ファイル名の一部は、あなたがこの部分を省略した場合、デフォルトのファイル名URLの必要な部分ではありません

5、アンカー部品:「#」は最初から最後まで、アンカーの一部です。URLのアンカー部分は、(標的として理解することができる)必要な部分ではありません

6、パート・パラメーター:最初から遠い部分との間に、引数の「#」の部分に、また、検索クエリの一部の一部として知られています「?。」本実施形態のパラメータは「:〜7パラメータ部分」とは?#「のスタート」「検索部、照会部として知られるパラメータ部分、の部分との間のアップ。本実施形態のパラメータである」「= 1基板ID = 5&ID = 24618&ページ。パラメータ複数のパラメータを可能にするために、パラメータ「&」区切り文字として。」とパラメータの間。パラメータは、区切り文字としてパラメータと「&」の間のパラメータを用いて、複数のパラメータを可能にします。

四、HTTPプロトコル構造

 

HTTPリクエストメッセージ

クライアントは、サーバーのHTTPリクエストメッセージにリクエストを送信し、次の形式を含みます:

要求ライン(リクエストライン)、リクエストヘッダ(ヘッダ)、空白ライン部と4つの要求データ。

形式は次のとおりです。

<リクエスト行>
<ヘッダ>
<空白行>
[<リクエストボディ>]
。1
2
。3
。4
。1、リクエストライン

要求行方法フィールド、URL HTTPプロトコルバージョンフィールドと、スペースで区切られた3つのフィールドのフィールドによって要求。たとえば、GET /index.htmlがHTTP / 1.1。

HTTPプロトコル要求の方法は、GET、POST、HEAD、PUT、ある DELETE、OPTIONS、TRACE、CONNECT。
最も一般的な方法は以下のとおりです。
GETメソッド:サーバーにリソースを取得するにはGETメソッドを使用してWebブラウザにアクセスするには、あなたが道のURLを入力して、ブラウザのアドレスバー、

POSTメソッドを使用してフォームを送信するために、バックリクエストに添付要求されたデータを受け入れるようにサーバーを必要とします。

図2に示すように、要求ヘッダー

要求キー/値のペアからのヘッダ、1行につき1つの対、及びキー値コロン「:」分離しました。リクエストヘッダ情報がクライアント要求をサーバに通知するために、典型的なリクエストヘッダは以下のとおりです。

User-Agent:リクエストを生成し、ブラウザの種類。

受け入れ:コンテンツタイプリストクライアントが認識しています。

ホスト:同じIPアドレス、その仮想ホストで複数のドメイン名を許可する要求のホスト名、。

3、空行

最後のリクエストヘッダは空白行、キャリッジリターンおよび改行を送信した後、通知サーバは、もはや次のリクエストヘッダを有していません。

図4に示すように、リクエストボディ

GETメソッド要求データが使用されるが、POSTプロセスの使用されていません。POSTメソッドは、フォームに必要事項を記入し、顧客を必要とするアプリケーションに適しています。要求データに関連付けられた、リクエストヘッダは、最も一般的にContent-TypeとContent-Lengthを使用しています。

HTTPレスポンスメッセージ

要求メッセージを受信し、解釈した後、サーバは、HTTPレスポンスメッセージを返します。

ステータスライン、メッセージヘッダ、応答体:HTTPレスポンスは、3つの部分、すなわち、で構成されています

メッセージ形式:

<ステータスライン>
<ヘッダ>
<空白行>
[<-bodyレスポンス>]
1。
2
3。
4。
1、ステータス行の形式は:

HTTP-バージョンステータスコード理由-フレーズCRLF

ここで、HTTP-バージョンHTTPプロトコルサーバのバージョンを示し、理由-フレーズステータスコードのテキスト説明を表すステータスコードは、応答状態コードを返送するサーバを表します。
ステータスコードが定義されたカテゴリに応じて3つの数字、最初の数字があり、5つの可能な値がある:
1XX: -指示情報は、処理が継続、要求が受信されたことを示す
の2xx:成功-理解、要求が正常に受信されたことを示し、受け入れ
の3xxを: -リダイレクト要求を満たすためには、さらに一歩行かなければならない
の4xx:クライアントエラー-リクエストに構文エラーがありますか、要求を達成することはできない
の5xx:サーバー側のエラー-サーバーが正当な要求を達成するために失敗した
一般的なステータスコードを、状態の説明は、説明を:
OK //クライアント要求が成功した200
400の不正なリクエスト//クライアント要求構文エラーは、それがサーバーによって理解することができない
401不正//リクエストは、ステータスコードは、WWW-Authenticateヘッダフィールドを使用する必要があります許可されていない
禁断の403 / /サーバがリクエストを受信しますが、サービスを提供することを拒否した
404が見つかりません//要求されたリソースが、例えば存在しません。間違ったにのURLを入力します。
500内部サーバーエラー//サーバが予期しないエラーになる
503サーバー利用できない//サーバーが現在のプロセスのクライアントにできないし要求は、時間の経過後に正常に戻ること
例:HTTP / 1.1 200 OK (CRLF)

図2に示すように、レスポンスヘッダ

このヘッダの基本的な情報が応答サーバを記述するために使用され、そして記述データ、データの記述情報は、サーバは、データを処理している間、それが返す方法でクライアントに通知することができます。

3、レスポンスボディ

JS JSコードがある場合、データは、要求されたHTMLページならば、HTMLコードが返され、純粋な純粋なデータを返された場合メッセージ本文応答は、身体の反応であります

ポストの違いはと取得します

リクエストを取得する:サーバーへのリクエストを取得し、URL上のデータ、限られた長さ;
POSTリクエスト:サーバーにリクエストを送信するステップと、身体上のデータ、自由な長さの制限をより安全な
共通:HTTPインターフェイスをJSON文字列を返しましたデータ型
の戻り値インタフェースと

{
"ERROR_CODE":0、
"stu_info":[
{
"ID" :. 1、
"名前": "ハオファンLIN"、
"性別":M "
"年齢":18は、である
" ":"海淀ADDRエリア"
"グレード":" 3つの第2のクラス"、
"電話番号":" 18612532941"、
"ゴールド「:11212
}
]
}
。1
2
3
4
5
6
7
8
9
10
11
12は、
13である
14の
15
テストインタフェース呼び出しドリル

インターフェイスを取得

リクエストURL http://api.nnzhp.cn/api/user/stu_info

リクエストメソッドget

リクエストパラメータ

パラメータ名必須種類説明

stu_nameは、学生の文字列名です

ブラウザへの1、直接呼び出し

 

2、郵便配達の呼び出しを使用して

getメソッドは、体がHTTP、無効になっているとき、私たちは、インターフェイスメソッド、URLへの一般的なデータを取得するために要求する郵便配達員を表示するように選択することができます。

 

 

JSONのリターンの方法は、文字列の形でもあります。

3、JMeterはgetメソッドコールテストを用いて行っ

スレッドグループを作成します。

 

 

HTTPリクエストを追加します

 

ドメイン名を入力し、URL、リクエストメソッドを選択し、キーを追加

 

ツリービューの結果を追加します。

 

インタフェースの実装

 

あなたは結果ツリービューとリターンデータで結果を表示することができます

POSTリクエストインターフェイス

ログインインタフェース

リクエストURL http://api.nnzhp.cn/api/user/login

リクエストメソッドポスト

キーと値の形式でパラメータとしてリクエストパラメータ

パラメータ名必須種類説明

ユーザー名は、ユーザー名の文字列であります

passwdファイルは、パスワード文字列であります

ユーザー名:niuhanyang

パスワード:aA123456

リターンパラメータ説明

パラメータ名タイプ説明

正常な動作のためにint型のエラーコード、0をERROR_CODE

login_info対象オブジェクトのログイン情報

userIdをint型のユーザーID

符号文字列の署名

login_time文字列のログイン時間

1、郵便配達の呼び出し

ポストメソッドのパラメータは、体内に配置されている、あなたは、URLにパラメータを見ることができます無効です

 

体内に提出された引数を実施する際には

体内に、リターンフォームJSON文字列としてキー値のための伝送パラメータは、パラメータは、リターンを参照して説明した成功した着陸を参照します。

2、通話テストのJMeter

オープンJMeterは - >追加 - > threads->グループスレッド

 


スレッドグループを追加 - > sampler-> HTTPリクエスト

 

ポストのドメイン名、URL、選択方法を入力し、入力パラメータ

 

実行し、その結果返された値を表示

 

学生情報インタフェースを追加

リクエストURLます。http://api.nnzhp.cn/api/user/add_stu
リクエストメソッドポスト
パラメータ、パラメータがあるJSONタイプ
パラメータ名必須種類説明

文字列の名前は、学生の名前です。

年生のクラスは、文字列であります

携帯電話の文字列の電話であります

合格しない場合は、セックスなしの文字列のセックスは、デフォルトでは、男性であります

年齢のない文字列の年齢は、デフォルトは18で通過しません。

あなたは北京の昌平区にデフォルト値を渡さない場合は、何の文字列のアドレスを追加していません

リターンパラメータ説明

パラメータ名タイプ説明

正常に動作させるためERROR_CODE int型エラーコード1000

msg文字列のメッセージ

実施形態の基準JSON形式は、上述したように、以下のように、キーと値のパラメータの形態で使用することは、送信されないであろう。

 

今、私たちは道に正しいパラメータで呼び出します

1、郵便配達の呼び出し

郵便配達で、POSTのための選択方法、URLアドレスを入力して、体内で生選択し、パラメータ文字列形式の入力JSON

 


2、呼び出しインタフェースのJMeterを使用して

ここでは、JMeterを呼び出す方法を見て

その後に行わ身体データ入力JSONで、HTTPリクエストを作成し、ドメイン名を入力し、パス、POSTメソッド

 

あなたは、メッセージの内容を表示するための要求のツリービューの結果にエントリを要求することができます

 

応答データは、応答結果を参照するには、実行が成功

 

学生の金リチャージ

リクエストURLます。http://api.nnzhp.cn/api/user/gold_add
リクエストメソッドポスト
パラメータ、
インターフェースはユーザーが行うことができます必要性管理を検証する権限を持って、私たちはクッキーを追加する必要があります

ユーザーのログイン名のクッキーのキーは、ログインインターフェイスから得られた値は、成功した着陸後に記号を返します。

パラメータ名必須種類説明

stu_idは学生証であるint型

int型は、金貨の数であります

リターンパラメータ説明

パラメータ名タイプ説明

正常な動作のためにint型のエラーコード、0をERROR_CODE

msg文字列のメッセージ

上述したように、パラメータがクッキーの形で添加する必要があります

1、郵便配達の呼び出し、道を追加クッキー

クッキーはぶっきらぼうポイントがにユーザーのブラウザに保存されたキー値であります

彼は何それはセッションで、セッションはキーと値のペアのサーバーに保存されている、以下確かにセッションクッキーと呼ばれ、一般的なセッションは、メモリ内部に直接、その後、セッションのパフォーマンスを向上させるためにより多く使用し、内部にキャッシュされます。

まず、私たちは、学生のID情報を表示するには、「学生情報を取得」インターフェースを持ち、次のように「ログイン」インターフェースを通じて、署名の値を取得する:例として、テストユーザーに:

= 2341 IDをチェックしてください

記号は次のとおりです。cd2b43f1688e472e3a516b5a2c6831e8

 


今の学生に金を追加

 

 

2、JMeterのとのインタフェースを呼び出します

あなたはクッキーのテストのJMeterとHTTPリクエストとHTTPクッキーマネージャを追加する必要があります

当社は、クッキーの機会の実行を追加する最初のターン

 

当社は、クッキーを追加する機会がありません失敗した実行を見ることができます

 

今、右の[追加]をhttpcookieを追加 - >の構成要素 - > HTTPクッキーマネージャ

 


クッキーの付加価値

 

データ実行、要求を表示

 


すべての生徒の情報を取得します

リクエストURLます。http://api.nnzhp.cn/api/user/all_stuの
リクエストメソッドが取得
パラメータを、あなたはヘッダー情報を追加する必要があり、リファラー値のキーはhttp://api.nnzhp.cn/です

リターンパラメータ説明

パラメータ名タイプ説明

正常な動作のためにint型のエラーコード、0をERROR_CODE

all_stuリストメッセージ

1、私たちは、アクセスするために、ブラウザのアドレスバーに直接、結果をヘッダを追加しないで見えます

次のように、ヘッダへのアクセスを追加しない、プロンプトの原点が正しくありません

 

2、郵便配達コールを用いて行わ、ヘッダ情報を追加し、コール

実行、結果は、すべての学生のユーザー情報

 

3、通話テストのJMeter

httpリクエストを追加

 

右の追加 - >の構成要素 - > HTTPヘッダー情報管理

 


生徒の情報を表示成功した実行結果、

 

ファイルのアップロードの種類

リクエストURLます。http://api.nnzhp.cn/api/file/file_upload
リクエストメソッドポスト
パラメータ
パラメータ名必須種類説明

ファイルは、ファイルのファイルです

リターンパラメータ説明

パラメータ名タイプ説明

正常な動作のためにint型のエラーコード、0をERROR_CODE

msg文字列のメッセージ

郵便配達と呼ばれる1、ファイルタイプの種類を選択するためのURLアドレス、キーを入力してください

 

 

 

 

アップロードするファイルを選択

 

 

 

成功した操作を実行します

 

 

 

2、JMeterの呼び出し

 

 


成功の実装、運用

 

 

 

----------------
免責事項:この記事はCSDNブロガー「riemann_の元記事である、CC 4.0 BY-SAの著作権契約書に従ってください、複製、元のソースのリンクと、この文を添付してください。 。
オリジナルリンクします。https://blog.csdn.net/riemann_/article/details/90708947

おすすめ

転載: www.cnblogs.com/sandswitch/p/11908457.html