如何在 ASCX 页面上的 ASP 网站上从 C# 代码执行 url 调用?
Posted
技术标签:
【中文标题】如何在 ASCX 页面上的 ASP 网站上从 C# 代码执行 url 调用?【英文标题】:How can I execute an url call from C# code on a ASP website on a ASCX page? 【发布时间】:2020-08-22 23:03:15 【问题描述】:我需要调用在客户端上注册的自定义协议(类似于:“custom:signDocs?param1=value?param2=value”)。
我有一个可以通过 javascript 在单击按钮时执行的工作。
但我需要调用 url 来执行我在客户端 pc 上的程序。
该程序用于签署文档并将其发送回服务器,并且在代码中我有一个 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;
但这无济于事,我什至不知道它是正确的道路......
有谁知道实现这个的方法吗?
【问题讨论】:
使用 HTTP 客户端,确保您的任务遵守跨域和身份验证。 我可以通过带有http客户端的url调用自定义协议吗?你能给我一些文档或例子吗? 【参考方案1】:您可以使用来自System.Net.Http
的 HttpClient,如下例所示。
从测试 api 端点进行简单的 get 调用。
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 Doc
【讨论】:
我没有调用 API,我调用的是自定义/可插拔协议,例如“MyProtocolName:Param1=value1¶m2=value2”以上是关于如何在 ASCX 页面上的 ASP 网站上从 C# 代码执行 url 调用?的主要内容,如果未能解决你的问题,请参考以下文章
如何将数据从 aspx 页面传递到 ascx 模式弹出窗口?