Android Studio - センシティブ ワード検索の実装

達成された効果:
データベースにデータを保存する前にセンシティブな単語を検索することです. センシティブな単語がある場合, センシティブな単語があることを促し, 提出は失敗し、データベースに保存できません.

使用する API:
中国語と英語のセンシティブ ワード フィルタリング

アイデア: 最初に API にアクセスするメソッドをカプセル化し、必要に応じてこのメソッドを呼び出し、コンテンツをサーバーに投稿してフィルタリングし、json 形式でデータを返し、json 形式でデータを分析し、内部のデータ データを取得します (つまり、フィルタリングされたコンテンツ、ウェブサイトはセンシティブ ワードを * に置き換えます。このとき、データ データをデータベースに直接保存できるため、読み出されるのはセンシティブ ワードが * に変更されたコンテンツです。データを元のコンテンツと比較できます 比較して、変化がない場合はセンシティブな言葉がないことを意味し、変化がある場合はセンシティブな言葉があることを意味し、センシティブな言葉があることを促します公開に失敗した単語。

具体的なプロセス:
1. json 解析に必要な依存関係をインポートします。

    implementation 'com.alibaba:fastjson:1.1.54.android'

2. メソッドをカプセル化します。TextFilter クラスを作成します。

ps: コード内の秘密鍵は上記の Web サイトに入ることができます. テスト API をクリックした後、[トークンの選択] をクリックして、独自の秘密鍵を取得します.
関数パラメータ内容は、取得したユーザー入力内容です。

package com.example.academymanageapp.adapter;

import com.alibaba.fastjson.JSONObject;

import java.io.IOException;

import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;

public class TextFilter {

    private String data;//调用该函数,返回data数据
    public String textFilterTest(String content){
        OkHttpClient client = new OkHttpClient().newBuilder().build();
        MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
        String string = "text="+content;
        RequestBody body = RequestBody.create(mediaType, string);
        Request request = new Request.Builder()
                .url("https://eolink.o.apispace.com/text-filters/api/v1/forward/text_filter/")
                .method("POST",body)
                .addHeader("X-APISpace-Token","7iv06pckr9yrbl3nqyrbcau9umy05vts")
                .addHeader("Authorization-Type","apikey")
                .addHeader("Content-Type","application/x-www-form-urlencoded")
                .build();

        Response response;
        try {
            response = client.newCall(request).execute();
            //获取data数据
            String result = response.body().string();
            JSONObject jsonObject = JSONObject.parseObject(result);
            data = jsonObject.getString("data");
        } catch (IOException e) {
            e.printStackTrace();
        }
        return data;
    }
}

ps: この手順で注意すべき点が 2 つあります。

  • RequestBody body = RequestBody.create(mediaType, string) は、コンテンツの前に "text=" を追加する必要があります。そうしないと、形式が正しくありません。
  • response.body() は一度しか使用できません。

3. 必要に応じて TextFilter の textFilterTest を呼び出すだけです。

おすすめ

転載: blog.csdn.net/zzzzzwbetter/article/details/130049230