安定した拡散 webui ログイン インターフェイス (ログイン) API インターフェイス呼び出し (C# を使用)

ナグ

今回は、C# を使用して sd webui api [ログイン] インターフェイスをリクエストする方法を読者に説明します。記事が役に立ったと思われた場合は、[いいね] をお願いします。質問がある場合は、コメント エリアで質問できます。

戦闘

1. API 有効パラメータを設定する

WebUI を起動するときに、有効にするために [-api]、[-api-auth アカウント: パスワード]、および [-gradio-auth アカウント: パスワード] を追加する必要があります。下図のようにオンにします。
注: ここで –api-auth のパスワードを設定するだけでは無効です。ログイン インターフェイスは ui ページのログインに使用されます。元のコードにはトークンを返す api-auth インターフェイスがありません。(間違っていたら訂正してください)

ここに画像の説明を挿入

2. ローカルで実行する

http://127.0.0.1:7860/docsにアクセスしてSwagger ドキュメントを参照し、[ログイン] インターフェイスを見つけてください。
ここに画像の説明を挿入

3. コード戦闘

1. コンソール プログラムで、API リクエストを行うために [RestSharp] nuget パッケージをインストールする必要があります。
ここに画像の説明を挿入

2. 次のコードをプロジェクトに追加します。直接実行します。リクエストはローカルで実行されているインターフェイスです。次の [http://127.0.0.1:7860/sdapi/v1/login] はリーダー独自のコードに置き換える必要があります。道。3. [ユーザー名]と[パスワード]を設定します。ここでsdプロジェクトを開始するとき、次のアカウントとパスワードが使用されます。読者はローカルのものに置き換える必要があります。 4. 取得したresponse.contentが返される
ことがわかります。
トークンなしの {"success ":true}。
5. デバッグでレスポンスボディを確認すると、Cookie の中にトークンが含まれていることが分かりますが、このとき下図のように Cookie 内のトークンを取得することで目的を達成できます。

using RestSharp;
//post方式进行登录,登录成功后,获取cookies中的token
var client = new RestClient("http://127.0.0.1:7860/login/");
var request = new RestRequest();
request.AddHeader("Accept", "*/*");
request.AddHeader("Connection", "keep-alive");
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("username", "你的账号");//账号
request.AddParameter("password", "你的密码");//密码
var response = client.Post(request);
Console.WriteLine($"请求结果:{
      
      response.Content}");
//获取token
var res = response?.Cookies?["access-token"]?.Value;
Console.WriteLine($"获取到的token:{
      
      res}");

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_40600379/article/details/131147790