mirror of
https://github.com/immense/Remotely.git
synced 2025-10-26 11:27:15 +00:00
Replace WebRequest in AgentSocket.
This commit is contained in:
parent
2437ed9c88
commit
cedb8281cb
@ -10,12 +10,8 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Net.Http.Json;
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Timers;
|
||||
|
||||
@ -30,7 +26,7 @@ namespace Remotely.Agent.Services
|
||||
private readonly ConfigService _configService;
|
||||
|
||||
private readonly IDeviceInformationService _deviceInfoService;
|
||||
|
||||
private readonly IHttpClientFactory _httpFactory;
|
||||
private readonly ScriptExecutor _scriptExecutor;
|
||||
|
||||
private readonly Uninstaller _uninstaller;
|
||||
@ -49,7 +45,8 @@ namespace Remotely.Agent.Services
|
||||
ChatClientService chatService,
|
||||
IAppLauncher appLauncher,
|
||||
IUpdater updater,
|
||||
IDeviceInformationService deviceInfoService)
|
||||
IDeviceInformationService deviceInfoService,
|
||||
IHttpClientFactory httpFactory)
|
||||
{
|
||||
_configService = configService;
|
||||
_uninstaller = uninstaller;
|
||||
@ -58,6 +55,7 @@ namespace Remotely.Agent.Services
|
||||
_chatService = chatService;
|
||||
_updater = updater;
|
||||
_deviceInfoService = deviceInfoService;
|
||||
_httpFactory = httpFactory;
|
||||
}
|
||||
public bool IsConnected => _hubConnection?.State == HubConnectionState.Connected;
|
||||
public async Task Connect()
|
||||
@ -414,21 +412,16 @@ namespace Remotely.Agent.Services
|
||||
foreach (var fileID in fileIDs)
|
||||
{
|
||||
var url = $"{_connectionInfo.Host}/API/FileSharing/{fileID}";
|
||||
var wr = WebRequest.CreateHttp(url);
|
||||
wr.Headers[HttpRequestHeader.Authorization] = authToken;
|
||||
using var response = await wr.GetResponseAsync();
|
||||
var cd = response.Headers["Content-Disposition"];
|
||||
var filename = cd
|
||||
.Split(";")
|
||||
.FirstOrDefault(x => x.Trim()
|
||||
.StartsWith("filename"))
|
||||
.Split("=")[1];
|
||||
using var client = _httpFactory.CreateClient();
|
||||
client.DefaultRequestHeaders.Add("Authorization", authToken);
|
||||
using var response = await client.GetAsync(url);
|
||||
|
||||
var filename = response.Content.Headers.ContentDisposition.FileName;
|
||||
var legalChars = filename.ToCharArray().Where(x => !Path.GetInvalidFileNameChars().Any(y => x == y));
|
||||
|
||||
filename = new string(legalChars.ToArray());
|
||||
|
||||
using var rs = response.GetResponseStream();
|
||||
using var rs = await response.Content.ReadAsStreamAsync();
|
||||
using var fs = new FileStream(Path.Combine(sharedFilePath, filename), FileMode.Create);
|
||||
rs.CopyTo(fs);
|
||||
}
|
||||
|
||||
@ -42,12 +42,10 @@ namespace Server.Installer.Services
|
||||
"https://github.com/lucent-sea/Remotely/releases/latest/download/Remotely_Server_Linux-x64.zip";
|
||||
|
||||
using var httpClient = new HttpClient();
|
||||
|
||||
var headMessage = new HttpRequestMessage(HttpMethod.Head, releaseFile);
|
||||
var response = await httpClient.SendAsync(headMessage);
|
||||
var response = await httpClient.GetAsync(releaseFile);
|
||||
var contentLength = (double?)response.Content.Headers.ContentLength;
|
||||
|
||||
using var webStream = await httpClient.GetStreamAsync(releaseFile);
|
||||
using var webStream = await response.Content.ReadAsStreamAsync();
|
||||
using var fileStream = new FileStream(zipPath, FileMode.Create);
|
||||
|
||||
var progress = 0;
|
||||
|
||||
@ -525,6 +525,8 @@ namespace Remotely.Server.Services
|
||||
progressCallback.Invoke((double)stream.Position / stream.Length, file.Name);
|
||||
}
|
||||
|
||||
progressCallback.Invoke(1, file.Name);
|
||||
|
||||
return await AddSharedFileInternal(file.Name, fileContents, file.ContentType, organizationID);
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user