我正在尝试使用json-rpc
来呼叫WebClient
端点。它的前缀为wss
,我无法执行。
我曾尝试使用WebRequest.RegisterPrefix
来修复它,但是我尝试创建IWebRequestCreate
只会导致“此类未实现此属性”。
static void Send(string methodName, string parametersJObject, int id)
{
JObject bodyJObject =
new JObject(
new JProperty("jsonrpc", "2.0"),
new JProperty("method", methodName),
new JProperty("id", id.ToString()),
new JProperty("params", parametersJObject)
);
var cli = new WebClient();
cli.Headers[HttpRequestHeader.ContentType] = "application/json";
string postBody = bodyJObject.ToString(Formatting.None);
string response = cli.UploadString("wss://somesite.com/ws", postBody);
}
我试图添加它(我在SO上找到了它)
public class FakeRequest : WebRequest
{
private Uri _uri;
public FakeRequest(Uri uri)
{
_uri = uri;
}
public override Uri RequestUri { get { return _uri; } }
}
public class FakeRequestFactory : IWebRequestCreate
{
public WebRequest Create(Uri uri)
{
return new FakeRequest(uri);
}
}
并使用
注册 WebRequest.RegisterPrefix("wss://", new FakeRequestFactory());
我认为正确实施IWebRequestCreate
是关键,但是我已经排除了所有选择,并且想知道您是否有答案。
它是用.NET Framework 4.7编写的,但是如果更好,我可以切换到.NET Core。
预先感谢
/ Soeren
答案 0 :(得分:0)
我改用了WebSockets,并且有效。