HTTPインターフェースの開発と異常なデバッグ

インターフェイスタイプ

Webサービスインターフェース、HTTPインターフェース(SSL認証)、RPCインターフェース

インターフェースとは

インターフェイスとは、一般に、エンティティが外部に提供する抽象化(別のエンティティの場合もあります)を指し、外部の通信方法を内部の操作から分離して、他の外部エンティティとの対話方法に影響を与えることなく内部で変更できるようにします。

httpインターフェースタイプ

HTTP1.0は、GET、POST、およびHEADメソッドの3つのリクエストメソッドを定義しています。
HTTP1.1は、OPTIONS、PUT、DELETE、TRACE、およびCONNECTメソッドの5つの新しいリクエストメソッドを追加します。

方法 説明
取得する 指定されたページで情報を要求し、エンティティの件名を返します
サーバーにGET要求と一致する応答を要求しますが、応答本文は返されません。このメソッドは、応答コンテンツ全体を送信しなくても、応答メッセージヘッダーに含まれるメタ情報を取得できます。
役職 リクエストの処理(フォームの送信やファイルのアップロードなど)のために、指定されたリソースにデータを送信します
プット 指定されたリソースの場所に最新のコンテンツをアップロードすると、クライアントからサーバーに送信されたデータが指定されたドキュメントのコンテンツに置き換わります。
削除 Request-URIで識別されるリソースを削除するようにサーバーに要求します。つまり、指定されたページを削除します。
接続する HTTP / 1.1プロトコルは、接続をパイプモードに変更できるプロキシサーバー用に予約されています
オプション 特定のリソースに対してサーバーでサポートされているhttpリクエストメソッドを返し、クライアントがサーバーのパフォーマンスを表示できるようにします
痕跡 主にテストまたは診断のために、サーバーが受信した要求をエコーし​​ます

アプリケーション

公開インターフェース

SpringBootリリースインターフェイスの
@PostMapping
クライアントは、データの送信に適したPOSTでのみ要求できます。
@GetMapping
クライアントはGETメソッドのみを使用してリクエストでき、データのクエリに適しています
@DeleteMapping
クライアントはDELETEメソッドのみを使用してリクエストでき、データの削除に使用できます
@PutMapping
クライアントはPUTメソッドのみを使用してリクエストできます。データの変更に使用できます

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

post请求
 public static boolean doPost(String url, xxxx, xxxxx) throws ClientProtocolException, IOException {
    
    
    LOGGER.info("{}" + url);
    CloseableHttpClient httpClient = HttpClients.createDefault();
    HttpPost httpPost = new HttpPost(url);
    httpPost.setHeader("Content-Type", "application/json");
    JSONObject json = new JSONObject();
    json.put("key1", xxx);
    json.put("key2", xxx);
    StringEntity httpEntity = new StringEntity(json.toJSONString(), StandardCharsets.UTF_8);
    httpPost.setEntity((HttpEntity)httpEntity);
    CloseableHttpResponse closeableHttpResponse = httpClient.execute((HttpUriRequest)httpPost);
    int statusCode = closeableHttpResponse.getStatusLine().getStatusCode();
    if (statusCode != 200) {
    
    
      LOGGER.error("{}" + statusCode);
      return false;
    } 
    LOGGER.info(");
    return true;
  }
  get请求
  public static Boolean doGet(String url, xxxxxxx) throws ClientProtocolException, IOException {
    
    
    LOGGER.info("{}" + url);
    CloseableHttpClient httpClient = HttpClients.createDefault();
    HttpPost httpPost = new HttpPost(url);
    httpPost.setHeader("Content-Type", "application/json");
    JSONObject json = new JSONObject();
    json.put("key1", xxx);
    json.put("key2", xxx);
    json.put("key3", xxx);
    StringEntity httpEntity = new StringEntity(json.toJSONString(), StandardCharsets.UTF_8);
    httpPost.setEntity((HttpEntity)httpEntity);
    CloseableHttpResponse closeableHttpResponse = httpClient.execute((HttpUriRequest)httpPost);
    int statusCode = closeableHttpResponse.getStatusLine().getStatusCode();
    if (statusCode != 200) {
    
    
      LOGGER.error("{}" + statusCode);
      return Boolean.valueOf(false);
    } 
    LOGGER.info("");
    return Boolean.valueOf(true);
  }
JS接口请求
$.ajax({
    
    
      url:"http://www.microsoft.com",    //请求的url地址
     dataType:"json",   //返回格式为json
      async:true,//请求是否异步,默认为异步,这也是ajax重要特性
      data:{
    
    "id":"value"},    //参数值
      type:"POST",   //请求方式 get、post
      beforeSend:function(){
    
    
         //请求前的处理
      },
     success:function(req){
    
    
         //请求成功时处理
     },
     complete:function(){
    
    
         //请求完成的处理
     },
     error:function(){
    
    
         //请求出错处理
     }
});


デバッグインターフェイス

ツールpostMan、ページリクエストを使用できます

一般的な例外問題解決

413異常

クライアントリクエストの本文が大きすぎるため、リクエスト容量が異常になり
ます1. nginxのクライアント属性サイズを設定する必要があります:[client_max_body_size 10m] 2.F5
転送を設定する必要があります
3.データをバックグラウンドで分割できます

おすすめ

転載: blog.csdn.net/YHM_MM/article/details/113094445