我需要调用一个在客户端注册的自定义协议(类似于:"custom:signDocs?param1=value?param2=value")。
我有一个工作的协议,是通过JavaScript点击按钮来执行的。
但是我需要调用url来执行我在客户机上的程序。
这个程序是用来签署文件并将其发送回服务器,在代码中,我有一个15分钟的计时器,等待文件的状态改变为已签署,然后将文件显示给用户。
我也试过使用webrequest。
//Method that uses the webrequest
{
System.Net.WebRequest.RegisterPrefix("customProtocolName", new PrototipoIDPTRequestCreator());
System.Net.WebRequest req = System.Net.WebRequest.Create(protocolUrlWithParams);
var aux = req.GetResponse();
}
internal class CustomRequestCreator : System.Net.IWebRequestCreate
{
public WebRequest Create(Uri uri)
{
return new CustomWebRequest(uri);
}
}
class CustomWebRequest: WebRequest
{
public override Uri RequestUri { get; }
public CustomWebRequest(Uri uri)
{
RequestUri = uri;
}
}
但这什么也做不了,我不知道它的路径是否正确... ...
有谁知道一个方法来实现这个目标?
你可以使用HttpClient从 System.Net.Http
像下面的例子。
简单的从测试api端点获取调用。
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("YOUR_BASE_URL"); //https://localhost:8000
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = await client.GetAsync("api/test"); //api uri
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
}
注意事项 更多细节请参考: HttpClient文档