我调用了黑板学习API来下载一个文件。网址是
https://blackboard.ddns.net/learn/api/public/v1/courses/uuid:d23e128e62f8483699c26836e06cab32/contents/_27_1/attachments/_13_1/download
当我点击浏览器上的链接时,我看到在浏览器上呈现内容之前有2个更多的找到302。
https://blackboard.ddns.net/learn/api/public/v1/courses/uuid:d23e128e62f8483699c26836e06cab32/contents/_27_1/attachments/_13_1/download状态代码:302
https://blackboard.ddns.net/bbcswebdav/xid-1407_1?VxJw3wfC56=1553768183
https://blackboard.ddns.net/bbcswebdav/courses/1001/Blackboard密码txt?VxJw3wfC56=1553767343
我通过发送承载令牌在邮递员上进行了尝试,并请求一个GET请求来调用该方法,它也收到了内容。
我必须编写C#代码来接收文件的内容,但我没有接收文件,但接收错误。我一直在努力解决这个问题,但没有成功。你对此有什么想法吗?请帮忙。
我在C#控制台应用程序中的代码如下:
static void Main(string[] args)
{
//GET /learn/api/public/v1/courses/{courseId}/contents/{contentId}/attachments/{attachmentId}/download
string fileUrl = "/learn/api/public/v1/courses/uuid:d23e128e62f8483699c26836e06cab32/contents/_27_1/attachments/_13_1/download";
using (HttpClient client = new HttpClient())
{
client.BaseAddress = new Uri("https://blackboard.ddns.net/");
client.DefaultRequestHeaders.Authorization =
new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "avnPkfmWSnf2Y5aKf1497LahLD3eKuwn");
byte[] result = null;
HttpResponseMessage response = client.GetAsync(fileUrl).Result;
if (response.IsSuccessStatusCode)
{
result = response.Content.ReadAsByteArrayAsync().Result;
}
}
}
在读了一篇帖子后,我怎样才能获得系统。网Http。HttpClient是否不遵循302重定向?,我试着按照302重定向并更改代码,如下所示,但最后还是出现了同样的错误。
static void Main(string[] args)
{
//GET /learn/api/public/v1/courses/{courseId}/contents/{contentId}/attachments/{attachmentId}/download
string fileUrl = "/learn/api/public/v1/courses/uuid:d23e128e62f8483699c26836e06cab32/contents/_27_1/attachments/_13_1/download";
HttpClientHandler clientHander = new HttpClientHandler();
clientHander.AllowAutoRedirect = false;
using (HttpClient client = new HttpClient(clientHander))
{
client.BaseAddress = new Uri("https://blackboard.ddns.net/");
client.DefaultRequestHeaders.Authorization =
new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "avnPkfmWSnf2Y5aKf1497LahLD3eKuwn");
byte[] result = null;
HttpResponseMessage response = client.GetAsync(fileUrl).Result;
if (response.StatusCode == System.Net.HttpStatusCode.Found)
{
var locaton = response.Headers.Location.AbsoluteUri;
HttpResponseMessage secondResponse = client.GetAsync(locaton).Result;
if (secondResponse.StatusCode == System.Net.HttpStatusCode.Found)
{
string finalUrl = secondResponse.Headers.Location.OriginalString;
HttpResponseMessage thirdResponse = client.GetAsync(finalUrl).Result;
result = thirdResponse.Content.ReadAsByteArrayAsync().Result;
Console.Write(Encoding.UTF8.GetString(result));
}
}
}
}
我试过使用不同的HTTP客户端。NET(HttpWebRequest/Response、WebClient、HttpClient),但始终收到500个内部服务器错误。所以,我决定用第三方HTTP客户端进行测试,幸运的是RestSharp为我工作。
public ActionResult Index()
{
var client = new RestClient("https://blackboard.ddns.net/");
var request = new RestRequest("/learn/api/public/v1/courses/uuid:d23e128e62f8483699c26836e06cab32/contents/_27_1/attachments/_13_1/download", Method.GET);
client.AddDefaultHeader("Authorization", "Bearer ZVAFzAuZ1ujYRENLrjNv3b8UWWvgRic4");
var response = client.Execute(request);
return File(response.RawBytes, "text/plain", "MyTest.txt");
}
我在Android中通过改装调用RestAPI,每一个其他请求工作正常,并给我有效的响应,但此请求加载有点慢,需要时间加载,但当我得到响应其代码为200,但响应体为空等了一段时间后。 这是OkkHttp客户端,它的加载也扩展到加载json,因为它很慢。 在这个方法中调用API 这是我的反应体。。。。有人能帮我解释一下为什么我在这里得到了空身体吗。这是回应 这是Mode类产品。 }
这是html文件 当我在浏览器中运行这个时,请求不会被发送(我在后端的跟踪球中看不到任何东西),url工作正常,如果在浏览器和邮递员中使用,这是邮递员请求和响应的截图
在Apache J Meter中用1个线程触发请求时,我得到以下错误-org.Apache.http.nohttpresponseException:xxx.tc.at.xxx.net:8443未能在org.Apache.http.impl.conn.defaultthtpresponseparser.parsehead(Defaultthtpresponseparser.java:141)在or
我有一个Restapi,它将从一个网站下载pdf文件,然后将pdf文件返回给调用者。 使用下面的代码,我可以得到
我的代码(来自例如https://pypi.org/project/selenium/) 从selenium导入webdriver 浏览器=WebDriver.Firefox() 错误跟踪(最近一次调用):文件“C:\users\saltlake\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\