gpt4 book ai didi

java - 连接json-rpc接口(interface)

转载 作者:行者123 更新时间:2023-12-01 12:20:03 24 4
gpt4 key购买 nike

我正在尝试通过 C#/Java 连接到传输 rpc 接口(interface)以获取一些信息。 https://trac.transmissionbt.com/browser/trunk/extras/rpc-spec.txt不幸的是,我在获取正确的 HTTP-Post 来访问该接口(interface)时遇到问题。例如,如果我在 C# 中尝试:

    using (var client = new WebClient())
{
var values = new NameValueCollection();
values["torrent-get"] = "id";

var response = client.UploadValues("http://ip:9091/transmission/rpc", values);

var responseString = Encoding.Default.GetString(response);
Console.WriteLine("" + responseString);
}

或者如果我使用:

using (var webClient = new WebClient())
{
String json = "{\"arguments\": {\"fields\": [ \"id\", \"name\", \"totalSize\" ],\"ids\": [ 7, 10 ]},\"method\": \"torrent-get\",\"tag\": 39693}";
var response = webClient.UploadString("http://192.168.240.171:9091/transmission/rpc", "POST", json);
Console.WriteLine(""+response);
}

我收到以下错误:

System.dll 中发生“System.Net.WebException”类型的未处理异常附加信息:远程服务器返回异常:(409) 冲突。

最佳答案

您必须保存 409 响应中提供的 X-Transmission-Session-Id 并重新提交请求,并将 X-Transmission-Session-Id 属性添加到您的请求 header 。

Java 中的示例:

int index = responseString.indexOf("X-Transmission-Session-Id:");
String sessionId = responseString.substring(index + 27, index + 75);
connection.setRequestProperty("X-Transmission-Session-Id", sessionId);

关于java - 连接json-rpc接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26734751/

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