gpt4 book ai didi

c# - 如何使用 restsharp 获取 magento 管理员 token

转载 作者:太空宇宙 更新时间:2023-11-03 12:14:22 24 4
gpt4 key购买 nike

我对 rest API 和 restsharp 还很陌生,所以我需要一些帮助。我需要获得 magento 版本 2.2.3 管理 token ,但我一直收到错误请求。我遵循了本教程:https://www.youtube.com/watch?v=2sdGuC7IUAI&t=343s .但我最终提出了一个错误的请求。当我使用教程中的断点检查状态码时,我得到:NotFound。

我的主要目标是获取我在 Magento 中的类别。但要得到它,我需要一个管理员 token 。我已经有一个承载访问代码等。

非常感谢您的帮助。

到目前为止我的代码:magento.cs:

using System;  
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using RestSharp;
using Newtonsoft.Json;

namespace MagentoTest
{
public class magento
{
private RestClient Client { get; set; }
private string Token { get; set; }

public magento(string magentoUrl)
{
Client = new RestClient(magentoUrl);
}

public magento(string magentoUrl,string token)
{
Client = new RestClient(magentoUrl);
Token = token;
}

public string GetAdminToken(string userName, string passWord)
{
var request = CreateRequest("/rest/V1/integration/admin/token", Method.POST);
var user = new Credentials();
user.username = userName;
user.password = passWord;

string Json = JsonConvert.SerializeObject(user, Formatting.Indented);

request.AddParameter("aplication/json", Json, ParameterType.RequestBody);

var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
return response.Content;
}
else
{
return "";
}
}

private RestRequest CreateRequest(string endPoint, Method method)
{
var request = new RestRequest(endPoint, method);
request.RequestFormat = DataFormat.Json;
return request;
}
}
}

凭证:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MagentoTest
{
public class Credentials
{
public string username { get; set; }
public string password { get; set; }
}
}

(客户端)程序.cs

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MagentoTest;

namespace Client
{
class Program
{
static void Main(string[] args)
{
GetToken("blabla", "blabla");
}

static void GetToken(string userName, string passWord)
{
var m2 = new magento("http://beta.topprice24.com");
string token = m2.GetAdminToken(userName, passWord);

}
}
}

最佳答案

看起来,相对 URL 需要更改为“/rest/default/V1/integration/admin/token”(https://devdocs.magento.com/guides/v2.1/get-started/order-tutorial/order-admin-token.html)。

我已经简化了上面的代码,你可以很容易地得到 token 。

保持您的 Credentials 类不变,并按如下方式更改您的主程序

修改后的代码:(Program.cs)

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Client
{
class Program
{
static void Main(string[] args)
{
//Base URL needs to be Specified
String host = "http://beta.topprice24.com";
//Relative URL needs to be Specified
String endpoint = "/rest/default/V1/integration/admin/token";

RestClient _restClient = new RestClient(host);
var request = new RestRequest(endpoint, Method.POST);

//Initialize Credentials Property
var userRequest = new Credentials{username="blabla",password="blabla"};
var inputJson = JsonConvert.SerializeObject(userRequest);

//Request Header
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Accept", "application/json");
//Request Body
request.AddParameter("application/json", inputJson, ParameterType.RequestBody);

var response = _restClient.Execute(request);

var token=response.Content;
}
}
}

关于c# - 如何使用 restsharp 获取 magento 管理员 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50490309/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com