在Web API响应中添加压缩文件作为内容,下载时文件大小加倍
我将zip文件保存到AWS S3存储桶中.我现在正在尝试创建一个C#.NET API,该API将允许我从存储桶中下载指定的密钥并将其保存到内容密钥中的Httpresponsemessage中. 我已经提到以下问题来设置我对zip文件的回答:如何从Web API 2 httpget发送zip文件 我在上一个问题中修改了代码,以便从转移流读取. 问题是,我在尝试提取或查看看起来如下的文件时遇到错误: 我从API中回来的响应看起来像: 相关代码看起来像: [HttpGet, Route("GetFileFromS3Bucket")] public HttpResponseMessage GetFileFromS3Bucket(string keyName) { HttpResponseMessage response = new HttpResponseMessage(); string bucketName = "myBucket"; Regi
2 2024-01-26
编程技术问答社区
Azure AD身份验证2FA
我有身份验证服务,可以根据他们通过Web Portal配置的设置来验证用户.我提供的身份验证方法之一是通过Azure AD进行身份验证.以下是我的代码,由我的服务调用. public async Task Create(AzureAdTokenConfig config, string userName, string password) { try { var app = PublicClientApplicationBuilder.CreateWithApplicationOptions(new PublicClientApplicationOptions() { ClientId = config.ClientId,
WebAPI Regex路径属性出现错误 "找不到令牌的替换值"
在我的.NET Core 3代码中,我使用以下参数定义了WebAPI路由: [HttpGet("ViewerRoles/{searchString:regex(^\\d+-(? GetViewSettings(string searchString) { // .... } 启动服务时,这给我带来了以下错误: 错误:处理模板时 'api/[控制器]/viewerroles/{searchstring:regex(^\ d+ - (? 我很困惑.正则表达式似乎是正确的,并且在各种在线测试人员中起作用.但是为什么会丢失错误? 解决方案 我在审查它时已经找到了答案.有问题的部分是[\\w ].您必须使用双方括号.否则编译器将其解释为占位符. [HttpGet("ViewerRoles/{searchString:regex(^\\d+-(?
2 2024-01-08
编程技术问答社区
Corenet60 Angular总是返回404错误
我正在使用Angular 13在NetCore2上写的应用程序进行移植. [ApiController] [Route("[controller]")] public class GetOptionsController : Controller { private readonly GetOptionsService _getOptionsService; public GetOptionsController(GetOptionsService getOptionsService) { _getOptionsService = getOptionsService; } [HttpGet] public IActionResult GetOptions() { var options = _getOptionsService.GetOptions();
0 2024-01-08
编程技术问答社区
如何在使用minimalapi时如何配置JSON名称案例策略
我试图从我的MVC Web应用程序的端点配置的最小API中获得结果 我的获取动作是这样的: endpoints.MapGet( "HO-CFDZU4/api/Currency/Get", [PermissionAuthorize(PermissionName.ReadCurrencyDictionary)] async ([FromServicesAttribute] CurrencyService curency) => { var result = await DataSourceLoader.LoadAsync(curency.Get(), new DataSourceLoadOptions()); return Results.Ok(result);
0 2024-01-08
编程技术问答社区
在外部库中使用httpclient作为ASP.NET Core
简介 我正在开发SDK(这只是REST API的包装器).该SDK在内部使用HTTPCLIENT来提出API的请求. SDK目标.NET标准2.1.这是简化的代码. public class SomeSdk { private readonly HttpClient _httpClient; public SomeSdk() { _httpClient = new HttpClient(); } public async Task GetSomethingFromApiAsync() { return await _httpClient.GetStringAsync(...); } } 发行 ASP.NET核心项目中的其他开发人员正在使用SDK.我知道HTTPClient的麻烦,我知道MS Do
0 2024-01-08
编程技术问答社区
.NET 6中缺少startup.cs类
我创建了.NET 5中的REST API,并且一切都很好,但是最近我搬到了.NET 6,并意识到没有启动.如何在.net 6中添加DB上下文,因为没有启动.cs? 解决方案 在.NET 6 Microsoft删除了启动.CS类.只需转到program.cs文件,您可以添加一个连接字符串,然后您必须使用builder.Services.AddDbContext 旧方法是 services.AddDbContext 只需使用builder.Services,然后您就可以实现想要的东西. 其他解决方案 在.net 6中,它们将Startup.cs和Program.cs统一为一个程序. 现在注册中间件,服务和添加dbContext以及其他所有内容.CS文件. 这是program.cs文件的示例: using Microsoft.EntityFrameworkCore; var builder = WebApplication.CreateBui
0 2024-01-08
编程技术问答社区
热巧克力认证的连接用户
我在GraphQl的查询类中有一个非常简单的iQuery.我想完成的工作是获取请求聊天信息的授权用户.将Context.Chats更改为context.chats.s.where(i => i.userid == requestingingId).因此,您无法从我的API中获得私人聊天.如果您未经授权,那么您将始终收到一个空列表.我已经看到了如何使用MVC控制器执行此操作,但这不是所需的结果. public class Query { [UseDbContext(typeof(AppDbContext))] [UseFiltering] [UseSorting] public IQueryable GetChats([ScopedService] AppDbContext context) { return context.Chats .Include(m => m.Messages)
4 2024-01-08
编程技术问答社区
如何使用XUNIT测试Web API控制器
我正在尝试使用Xunit在Web API中的控制器中测试一种方法.该方法的作用是从数据库中获得ISBN的单个标题.我在单元测试期间遇到的问题是,我不确定如何插入我必须执行测试的虚拟数据以及assert函数如何工作. titlecontroller.cs [ApiController] [Route("titlecontroller")] public class TitleController : Controller { private IGtlTitleRepository _gtlTitleRepository; public TitleController(IGtlTitleRepository gtlTitleRepository) { _gtlTitleRepository = gtlTitleRepository; } [Route("getTitle/{ISBN}")] [HttpGet()]
2 2023-12-24
编程技术问答社区
如何将XML输入(请求)传递到.NET CORE 3.1上的Web API
我有一个.NET Core 3.1 Web API.我已经尝试了以下内容,但是当它击中它时总是会出现 [HttpPost] public IActionResult ReturnXmlDocument(HttpRequestMessage request) { var doc = new XmlDocument(); doc.Load(request.Content.ReadAsStreamAsync().Result); return Ok(doc.DocumentElement.OuterXml.ToString()); } 它甚至在调试期间都击中了它,也显示了提琴手中的415个错误. 解决方案 asp.net core不再使用httprequestmessage或httpresponsemessage. 因此,如果您想接受XML格式请求,则应执行以下步骤:
2 2023-12-21
编程技术问答社区
如何使ASP.NET核心返回XML结果?
[HttpGet] [HttpPost] public HttpResponseMessage GetXml(string value) { var xml = $"{value}"; return new HttpResponseMessage { Content = new StringContent(xml, Encoding.UTF8, "application/xml") }; } 我使用Swagger调用了该动作,然后通过此参数为"文本值" 预期结果应该是这样的XML文件:文本值 实际结果:奇怪的JSON结果没有传递的值! https://www.screencast.com/t/uzceed7ojle 我尝试了以下解决方案,但没有起作用: services.AddMvc().AddXmlDataContractSerializerFormat
4 2023-12-21
编程技术问答社区
Signalr Core在Local主机上工作,但在Azure App Service上不起作用
我有一个客户端程序(.NET 4.8上的WPF应用程序)和Web API(.NET Core 3.1). 我试图让两者通过信号核心进行通信. 当两者在我的PC上本地运行(即在Localhost上)时,它可以很好地工作. 但是,一旦我将API发布到Azure App Service(并将WPF应用程序指向新URL),它就无法正常工作. SignalR建立了一个连接,但是当API将数据发送到WPF应用程序时,该应用程序永远不会接收它. 我不确定它是否与CORS有关. Azure App Service上的CORS被禁用.在我的Web API上,我这个startup.cs: public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddCors(options => {
4 2023-12-13
编程技术问答社区
在中央订单处于状态"录制"时,添加录音带
我试图将MediaTrack添加到Mediarecorder处于状态"录制" 时 添加新曲目的代码如下: activeStream.addTrack(newAudioTrack) 之后,触发了事件(ONSTOP).我如何避免这种情况? 解决方案 您可以使用AudioContext创建固定的MediaStream,您可以传递给MediaRecorder.这使您可以在录制时更改输入. const audioContext = new AudioContext(); const mediaStreamAudioDestinationNode = new MediaStreamAudioDestinationNode(audioContext); const mediaRecorder = new MediaRecorder(mediaStreamAudioDestinationNode.stream); 假设您有一个MediaStream 称为initialMe
6 2023-12-01
编程技术问答社区
webrtc,getDisPlayMedia()不会从遥控流中捕获声音
我有自己的Web应用程序,该应用程序基于Peerjs库(这是一个视频会议). 我正在尝试使用" Mediarecorder"进行录制,但我面临着一个非常不愉快的情况. 捕获我的桌面流的代码如下: let chooseScreen = document.querySelector('.chooseScreenBtn') chooseScreen.onclick = async () => { let desktopStream = await navigator.mediaDevices.getDisplayMedia({ video:true, audio: true }); } 然后,我成功地将收到的 desktopstream 视频 in dom: const videoElement = doc.querySelector('.videoElement') videoElement.srcObject = desktopStream v
2 2023-12-01
编程技术问答社区
如何使Azure AD access_token符合其在Microsoft Graph APIs之外的签名验证?
我创建了一个Azure AD Mobile和桌面应用程序.现在,我使用以下API获得了我的访问信息, post https://login.microsoftonline.com/ }/oauth2/token 密码:通过 client_id:id 资源: https://graph.microsoft.com Grant_Type:密码 client_secret:秘密 用户名:用户名 范围:OpenID 响应看起来像 " Access_Token":" AcessToken", " Refresh_token":" Refereshtoken", " id_token":" id_token". 现在,我将Access_Token传递给使用同一Azure AD客户端配置的第三方应用程序.当第三方应用程序试图验证签名时,操作会失败. 然后是因为 nonce 仅适用于Microsoft Graph API.现在如何删除相同或使我的Access_Token签名验证符合验证
ASP.NET Core Web API:我的API在Local主持器上工作,但在我的Plesk Web服务器上不起作用
我已经构建了一个ASP.NET Core Web API,并且它在我的机器上可以使用Postmann进行测试,这一切都很漂亮,但是当我将其放在Plesk Web服务器上时,它总是说错误404. 我试图创建一个子域但同样的东西,我已经更改了launchsetting.json文件中的应用程序URL,也将数据库更改为我在服务器上的数据库需要帮助 "profiles": { "NHLStatsAndSalaryAPI": { "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, "launchUrl": "swagger", "applicationUrl": "https://apinhl.nhldynastypool.com/", "environmentVariabl
2 2023-11-29
编程技术问答社区
C# Web API 将元素合并为单一元素(使用对象)
我正在构建C#Web API,其目的是使外部公司通过呼叫我正在建造的API来检索学生数据(他们称其为"角色").现在,他们可以选择通过致电https://localhost来检索所有学生:xxxxx/custom-roles-api/campuscustomroles,或者要检索单个学生,它将是https://localhost:xxxxxx/custic- custom-角色-Api/campuscustomroles/123456带有" 123456"为学生ID号.有些学生在一个部门的下面有一排数据,因此json返回在单个元素中显示了他们,但是对于属于2个或多个部门的学生,回报率显示了多个元素,用于示例; { "roles": [ [ "STUDENT", "UG", 2, "Politics", "Smith, John",
2 2023-11-29
编程技术问答社区
声明一条带有一个必需参数和多个可选查询字符串的路线
我在宣布路线方面没有太多经验,所以我想要的甚至可能是无效的,但我正在考虑拥有这样的路线: givememoney/printdate/2023-05-23¤cy=USD&amonut=alot&forwhom=me,mom,dad 其中printdate和像2023-05-23这样的某些值始终是必需的. 但是其余的是可选. 首先:这有效吗? 第二:如果有效,我该如何声明这样的路线?这是我尝试的,但这是错误的. [FunctionName("GiveMeMoney")] public async Task GiveMeMoney( [HttpTrigger(AuthorizationLevel.Function, "get", Route = "givememoney/{printdate}/{optional?}")] HttpRequest req, ILogger log, string printdate, st
2 2023-11-29
编程技术问答社区
QuickBooks Online Api错误 "远程服务器返回错误:(400) 错误请求"
我正在使用QBO API,并且正在尝试检索访问和刷新令牌的步骤.当我发送请求时,当我尝试获取响应时,我会遇到错误,以指出"远程服务器返回错误:(400)不良请求".请参阅下面的代码. 我已经尝试了标题中的许多变体,但无法使其正常工作. 有什么想法? 代码(使用vb.net): Sub Step2_GetTokens() 'Delcare variables. Dim vHTTPREQUEST As HttpWebRequest Dim vHTTPRESPONSE As HttpWebResponse Dim vSTREAMOBJECT As Stream Dim vSTREAMREADER As StreamReader Dim vSTREAMDATA As String Dim vAUTHORIZATIONCODE As String Dim vREDIRECTURI As String
4 2023-11-29
编程技术问答社区
在云运行服务中暴露5001(HTTP)和5672(TCP)端口是否可行?
我正在在Google Cloud中设置解决方案.我需要一个RabbitMQ队列经纪人和.NET Core 2.2中开发的WebAPI.这个想法是让WebAPI连接到RabbitMQ接收消息. 我已经将RabbitMQ与GKE一起安装在一群Kubernetes中,并在市场上获得了RabbitMQ群集.我已经在云运行中安装了WebAPI.这两个组件都是以标准方式提出的,没有任何特殊性的出版物. WebAPI使用端口5001用于HTTP流量,显然是订阅RabbitMQ接收消息的听众使用端口5672. 问题是将WebAPI上传到云运行不起作用,显然是因为云运行仅公开HTTP流量的一个端口,因此另一个端口5672被阻止. 通过将同一WebAPI安装在Kubernetes上的容器中,它确实会揭示端口5001和5672,并且工作正常. 可以发布WebAPI到云运行,除了向HTTP流量公开端口5001外,还可以公开端口5672(在这种情况下,以打开TCP连接),从而能够连接
4 2023-11-29
编程技术问答社区