不要使用 - 使用[apache-commons-httpclient],[apache-httpclient-4.x],[java-http-client],[dotnet-httpclient]或[angular-httpclient]
如何在不使用 .NET Core/Standard 中的 DI 的情况下将 IHttpClientFactory 与 .NET 4.8 一起使用
我有一个 .NET 4.8 Windows 窗体应用程序,它使用 Autofac 进行 DI。目前,我们正在使用一个注册为单例的 HttpClient 实例: builder.Register(c => { var han...
有没有办法将 C# HttpClient 转换为 curl?
假设您正在发出 HTTP 请求(尽管它可以是任何 http 调用): string baseurl = LocalConfigKey.BaseUrl; string geturl = string.Format("{0}leo-platform-api/api/v1/Orchest...
HttpClient 标头与 HttpRequestMessage 标头
我们什么时候应该使用 HttpRequestMessage 对象中的标头而不是 HttpClient 中的标头? 我们需要添加授权(总是在变化)和一些自定义标头(总是在变化)。 问题 ...
从服务方法调用 servlet 时,Spring Boot 2 不会触发 resilience4j 的@CircuitBreaker
我正在尝试在 Spring Boot 2 应用程序中实现 resilience4j。 当我在 Controller 类上实现时,它工作正常。 但是当我在内部/服务方法中实现并试图触发@
不是问题:如果有人已经开始在角度中使用独立组件并且正在努力将 HttpClient 注入任何服务,您可以通过在 importProvide 中添加 HttpClientModule 来解决这个问题...
Content-Type 字符集是否未从 HttpResponseMessage 公开?
我正在将一些代码从使用 HttpWebRequest 转换为 HttpClient。我遇到的一个问题是从内容类型响应标头获取字符集。 使用 HttpWebRequest 时,字符集是 exp...
你好,我正在尝试从 esp32 向节点 red 发出获取请求,我已经成功发出请求,但我只收到空的: 在此处输入图像描述 这是我的简单节点流 输入
在 .net core 中使用 HttpClient/HttpClientFactory 时出现问题
我们已经实现了 IHttpClientFactory 以在 .NET Core 中使用 HttpClient 进行第三方调用。但是,我们仍然收到以下错误。 System.IO.IOException:无法从...读取数据
在 .NET Framework 4.6 中,我无法实例化 DefaultHttpClientFactory 内部类来利用 IHttpClientFactory 的端口耗尽和 DNS 更改功能。 我尝试使用
HttpClient 添加“api-version=1.0”以接受标头
我正在使用 .NET6 并已将版本控制添加到我的 ASP Web API。 我不想在 url mysite.com/api/v1/controller 中包含版本号,而是想将 api-version 添加到 Accept
HttpClient DelegatingHandler 无法正常工作
我们正在使用 HTTP 客户端和 DelegatingHandler 来记录传出的 API 请求。 我们的系统环境包括两个区域,测试和生产。我在...中没有遇到任何问题
我有一个 Web 应用程序,它使用 HttpClient 类从 API 中提取数据。我有几个问题。 HttpClient 是否最适合从 API 获取数据?我从 APi 得到一个字符串并反序列化它......
我正在尝试使用 .net 发送 postAsync api。通过 api 在正文中接受 2 个参数: 基本上里面的 scanMethods json 对象将始终包含文本 ['ANTIVIRUS']。 用户上传的文件...
为 soap 服务连接 HttpComponentsMessageSender 类配置凭据
之前我的项目使用的是apache 5以下的版本,项目已经更新,现在使用的是5版本。 进行关键配置以便能够向 SOAP 服务发出请求...
How do I read a section in JSON result by httpClient?
这是检索 JSON 的 C# 代码: 尝试 { HttpClient 客户端 = new HttpClient(); client.DefaultRequestHeaders.Accept.Clear(); client.BaseAddress = ne ...
如何读取 httpClient 返回的 JSON 结果中的部分?
这是检索 JSON 的 C# 代码: 尝试 { HttpClient 客户端 = new HttpClient(); client.DefaultRequestHeaders.Accept.Clear(); client.BaseAddress = ne ...
How to post selected checkboxes as an array from angular to api
我在“表单”模块中创建了一个组件“表单页面”: 表单页面.component.html: ... 我在“表单”模块中创建了一个组件“表单页面”: form-page.component.html: <form [formGroup]="form" (submit)="onSubmit()"> <div> <label for="carmodel">Car Model:</label> <input type="text" class="form-control" formControlName="carmodel"> <div *ngIf="form.controls['carmodel'].touched && form.controls['carmodel'].errors"> <div *ngIf="form.controls['carmodel'].hasError('required')" class="error">Carmodel is required.</div> <div *ngIf="form.controls['carmodel'].hasError('minlength')">Carmodel should be minimum 3 characters.</div> </div> </div> <div> <label for="carnum">Car Number:</label> <input type="text" class="form-control" formControlName="carnum"> <div *ngIf="form.controls['carnum'].touched && form.controls['carnum'].errors"> <div *ngIf="form.controls['carnum'].hasError('required')" class="error">carnum is required.</div> </div> </div> <div> <label for="contactNumber">Contact Number:</label> <input type="text" class="form-control" formControlName="contactNumber"> <div *ngIf="form.controls['contactNumber'].touched && form.controls['contactNumber'].errors"> <div *ngIf="form.controls['contactNumber'].hasError('required')" class="error">Contact number is required.</div> </div> </div> <div> <label>Type of Service:</label> <div> <label><input type="radio" name="option" value="Waterwash" formControlName="option"> Waterwash </label> </div> <div> <label><input type="radio" name="option" value="Fullservice" formControlName="option"> Fullservice </label> </div> <div *ngIf="form.controls['option'].touched && form.controls['option'].invalid"> <div class="error">Please select an option</div> </div> </div> <div> <label>Addons:</label> <div> <label><input type="checkbox" value="10%off First service visit" formControlName="checkbox"> 10%off First service visit</label> </div> <div> <label><input type="checkbox" value="10%off Waterwash" formControlName="checkbox"> 10%off Waterwash</label> </div> <div> <label><input type="checkbox" value="Free AC Inspection" formControlName="checkbox"> Free AC Inspection</label> </div> <div *ngIf="form.controls['checkbox'].touched && form.controls['checkbox'].invalid"> <div class="error">Please select at least one Addon</div> </div> </div> <div> <label>State:</label> <select formControlName="state" (change)="onStateChange()"> <option *ngFor="let state of states" [value]="state">{{state}}</option> </select> <div *ngIf="form.controls['state'].touched && form.controls['state'].invalid"> <div class="error">Please select a state</div> </div> </div> <div> <label>City:</label> <select formControlName="city"> <option *ngFor="let city of cities[form.controls['state'].value]" [value]="city">{{city}}</option> </select> <div *ngIf="form.controls['city'].touched && form.controls['city'].invalid"> <div class="error">Please select a city</div> </div> </div> <button type="submit" class="btn btn-primary">Submit</button> <button type="button" (click)="Reset()">Reset</button> <button (click)="goBack()">back</button> </form> form-page.component.ts: import { Component } from '@angular/core'; import { Location } from '@angular/common'; // import { FormGroup, FormBuilder, Validators } from '@angular/forms'; // import { CarServiceService } from 'src/app/services/car-service.service'; @Component({ selector: 'app-form-page', templateUrl: './form-page.component.html', styleUrls: ['./form-page.component.css'] }) export class FormPageComponent { form: FormGroup; states: string[] = ['Tamilnadu', 'Kerala', 'Karnataka','Maharastra']; cities: {[key: string]: string[]} = { 'Tamilnadu': ['Chennai', 'Coimbatore','Madurai'], 'Kerala': ['Trivandrum','Kochi','Kollam'], 'Karnataka': ['Bangalore', 'Mysore'], 'Maharastra': ['Mumbai', 'Pune'] }; constructor(private fb: FormBuilder,private location : Location,private carServiceService :CarServiceService) { this.form = this.fb.group({ carmodel :['', [Validators.required, Validators.minLength(3)]], carnum :['', [Validators.required]], contactNumber: ['', [Validators.required, Validators.pattern(/^\d{10}$/)]], option: ['', Validators.required], checkbox: ['', Validators.required], state: ['', Validators.required], city: ['', Validators.required] }); } goBack():void{ this.location.back(); } onSubmit() { if (this.form.valid) { this.carServiceService.addCar(this.form.value).subscribe(response =>{ console.log(response); }); } else { // Form is invalid, display error messages this.form.markAllAsTouched(); } } Reset(){ this.form.reset(); } onStateChange() { const state = this.form.controls['state'].value; this.form.controls['city'].setValue(''); if (state) { this.form.controls['city'].enable(); } else { this.form.controls['city'].disable(); } } // } 为 POST 创建了一个名为“car-service”的服务: 汽车服务.service.ts: import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { Observable } from 'rxjs'; @Injectable({ providedIn: 'root' }) export class CarServiceService { constructor(private http: HttpClient) { } addCar(formData : any): Observable<any>{ return this.http.post<any>('https://localhost:7095/api/Forms/submit-form',formData); } } 我正在尝试将表单值发布到 API。当我点击提交时,出现错误 400。 POST https://localhost:7095/api/Forms/submit-form 400 错误: ERROR HttpErrorResponse {headers: HttpHeaders, status: 400, statusText: 'OK', url: 'https://localhost:7095/api/Forms/submit-form', ok: false, …}error: {type: 'https://tools.ietf.org/html/rfc7231#section-6.5.1', title: 'One or more validation errors occurred.', status: 400, traceId: '00-88c37085e17ce434f174cf65d020c28e-1bd09d34125cb2dc-00', errors: {…}}headers: HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, lazyInit: ƒ}message: "Http failure response for https://localhost:7095/api/Forms/submit-form: 400 OK"name: "HttpErrorResponse"ok: falsestatus: 400statusText: "OK"url: "https://localhost:7095/api/Forms/submit-form"[[Prototype]]: 在 asp.net-core web API 中: FormData.cs: namespace AngularApi.Model { public class FormData { public string Carmodel { get; set; } public string Carnum { get; set; } public string ContactNumber { get; set; } public string Option { get; set; } public List<string> Checkbox { get; set; } public string State { get; set; } public string City { get; set; } } } 这是我在 API 中的 FormController: private static List<FormData> formsDataList = new List<FormData>(); [HttpPost("submit-form")] public IActionResult SubmitForm([FromBody] FormData formData) { // process the form data string carmodel = formData.Carmodel; string carnum = formData.Carnum; string contactNumber = formData.ContactNumber; string option = formData.Option; List<string> checkbox = formData.Checkbox; string state = formData.State; string city = formData.City; // validate the form data // if (string.IsNullOrWhiteSpace(carmodel) || string.IsNullOrWhiteSpace(carnum) || string.IsNullOrWhiteSpace(contactNumber) || string.IsNullOrWhiteSpace(option) || checkbox == null || checkbox.Count == 0 || string.IsNullOrWhiteSpace(state) || string.IsNullOrWhiteSpace(city)) // { // return BadRequest(new { Message = " Enter the required fields." }); // } formsDataList.Add(formData); // return Ok(new { Message = "Form submitted successfully." }); return Ok(formData); } 输入甚至没有命中 API。所以我怀疑问题出在 HTTPClient 和复选框上。我想问题出在复选框上。因为如果我从 HTML 表单和 API 中完全删除复选框字段,它会完美地工作并且我能够将值发布到 API。 有人可以告诉我如何解决这个问题。 如果你记录表单值,你会得到这个: carmodel: "kia" carnum: "123" checkbox: true city: "Chennai" contactNumber: "456" option: "Waterwash" state: "Tamilnadu" 我想你也看到了问题。布尔值不是字符串列表。除此之外,您还为所有三个选项指定了相同的控件名称。 你可以f。 e.使用字符串数组或更好的 FormArray 并使用 ngFor. 生成复选框 首先我定义了复选框值: checkboxes = [ { value: '10%off First service visit', name: '10%off First service visit' }, { value: '10%off Waterwash', name: '10%off Waterwash' }, { value: 'Free AC Inspection', name: 'Free AC Inspection' }, ]; 顺便说一下,将值作为字符串对我来说有点不常见。我的意思是,您宁愿将 id 存储在数据库中。但无论如何。 然后在表单生成器中使用FormArray checkbox: new FormArray([], Validators.required) 并为它创建一个吸气剂 get checkboxesFormArray() { return this.form.controls['checkbox'] as FormArray; } 在那之后填充它 addCheckboxes() { this.checkboxes.forEach(() => this.checkboxesFormArray.push(new FormControl('')) ); } 并添加一个事件处理器来处理checked change事件 checkedChanged(e) { let index = this.checkboxes.findIndex( (item) => item.value === e.target.value ); if (e.target.checked) { this.checkboxesFormArray.controls[index].setValue(e.target.value); } else { this.checkboxesFormArray.controls[index].setValue(''); } } 这是设置 appr 所必需的。控制值到所选字符串。 这就是模板的样子 <div> <label>Addons:</label> <div *ngFor="let cbx of checkboxesFormArray.controls; let i = index"> <label formArrayName="checkbox"> <input type="checkbox" [formControlName]="i" (change)="checkedChanged($event)" [value]="checkboxes[i].value"> {{checkboxes[i].name}} </label> </div> </div> 并且 here 你可以找到一个有效的 stackblitz 演示。 如果这是您要找的,请将其标记为答案。 代替<input type=checkbox>,您可以尝试使用<mat-selection-list>。 将始终返回布尔值。它将返回所选值的数组。 代码将是: <mat-selection-list formControlName="checkbox"> <mat-list-option value="10%off First service visit"> 10%off First service visit</mat-list-option> <mat-list-option value="10%off Waterwash" 10%off Waterwash</label></mat- list-option> <mat-list-option value="Free AC Inspection"> Free AC Inspection</mat- list-option> </mat-selection-list> 注意:MatSelectionList 是 Angular Material 的一个组件。你必须先在你的模块中导入它。
如何使用 httpClient 从 Exchange 获取数据?
我想从 NSE(印度国家证券交易所)获取数据。 NSE 提供 API 来获取数据。例如 https://www.nseindia.com/api/option-chain-indices?symbol=BANKNIFTY 但如果我去...
ASP.NET Core Web API - 如何基于 HttpStatus 在第三方 API 中返回响应
在我的 ASP.NET Core-6 Web API 中,我正在使用第三方 API,返回的响应应该基于 Http 状态 我收到了供应商的这些回复: 错误的请求: { “响应 C...
C# 无法使用 HttpRequestMessage 发布数据并获得 400 状态
我尝试了几种不同的方法我无法让 pipelineId 发布(接收 400),请参见下面的代码: { client.BaseAddress = new Uri(_serviceConfig.DataGapsBaseUrl); 变种请求...