httpclient 相关问题

不要使用 - 使用[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...

回答 1 投票 0

有没有办法将 C# HttpClient 转换为 curl?

假设您正在发出 HTTP 请求(尽管它可以是任何 http 调用): string baseurl = LocalConfigKey.BaseUrl; string geturl = string.Format("{0}leo-platform-api/api/v1/Orchest...

回答 1 投票 0

HttpClient 标头与 HttpRequestMessage 标头

我们什么时候应该使用 HttpRequestMessage 对象中的标头而不是 HttpClient 中的标头? 我们需要添加授权(总是在变化)和一些自定义标头(总是在变化)。 问题 ...

回答 1 投票 0

从服务方法调用 servlet 时,Spring Boot 2 不会触发 resilience4j 的@CircuitBreaker

我正在尝试在 Spring Boot 2 应用程序中实现 resilience4j。 当我在 Controller 类上实现时,它工作正常。 但是当我在内部/服务方法中实现并试图触发@

回答 0 投票 0

HttpClient 用于 angular 中的独立组件

不是问题:如果有人已经开始在角度中使用独立组件并且正在努力将 HttpClient 注入任何服务,您可以通过在 importProvide 中添加 HttpClientModule 来解决这个问题...

回答 0 投票 0

Content-Type 字符集是否未从 HttpResponseMessage 公开?

我正在将一些代码从使用 HttpWebRequest 转换为 HttpClient。我遇到的一个问题是从内容类型响应标头获取字符集。 使用 HttpWebRequest 时,字符集是 exp...

回答 5 投票 0

Esp32 到 node-red get 请求

你好,我正在尝试从 esp32 向节点 red 发出获取请求,我已经成功发出请求,但我只收到空的: 在此处输入图像描述 这是我的简单节点流 输入

回答 0 投票 0

在 .net core 中使用 HttpClient/HttpClientFactory 时出现问题

我们已经实现了 IHttpClientFactory 以在 .NET Core 中使用 HttpClient 进行第三方调用。但是,我们仍然收到以下错误。 System.IO.IOException:无法从...读取数据

回答 1 投票 0

如何在旧框架中利用 HttpClientFactory?

在 .NET Framework 4.6 中,我无法实例化 DefaultHttpClientFactory 内部类来利用 IHttpClientFactory 的端口耗尽和 DNS 更改功能。 我尝试使用

回答 0 投票 0

HttpClient 添加“api-version=1.0”以接受标头

我正在使用 .NET6 并已将版本控制添加到我的 ASP Web API。 我不想在 url mysite.com/api/v1/controller 中包含版本号,而是想将 api-version 添加到 Accept

回答 2 投票 0

HttpClient DelegatingHandler 无法正常工作

我们正在使用 HTTP 客户端和 DelegatingHandler 来记录传出的 API 请求。 我们的系统环境包括两个区域,测试和生产。我在...中没有遇到任何问题

回答 0 投票 0

C# HttpClient 和 API

我有一个 Web 应用程序,它使用 HttpClient 类从 API 中提取数据。我有几个问题。 HttpClient 是否最适合从 API 获取数据?我从 APi 得到一个字符串并反序列化它......

回答 2 投票 0

PostAsync 给出 400 个错误请求 c#

我正在尝试使用 .net 发送 postAsync api。通过 api 在正文中接受 2 个参数: 基本上里面的 scanMethods json 对象将始终包含文本 ['ANTIVIRUS']。 用户上传的文件...

回答 0 投票 0

为 soap 服务连接 HttpComponentsMessageSender 类配置凭据

之前我的项目使用的是apache 5以下的版本,项目已经更新,现在使用的是5版本。 进行关键配置以便能够向 SOAP 服务发出请求...

回答 0 投票 0

How do I read a section in JSON result by httpClient?

这是检索 JSON 的 C# 代码: 尝试 { HttpClient 客户端 = new HttpClient(); client.DefaultRequestHeaders.Accept.Clear(); client.BaseAddress = ne ...

回答 0 投票 0

如何读取 httpClient 返回的 JSON 结果中的部分?

这是检索 JSON 的 C# 代码: 尝试 { HttpClient 客户端 = new HttpClient(); client.DefaultRequestHeaders.Accept.Clear(); client.BaseAddress = ne ...

回答 0 投票 0

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 的一个组件。你必须先在你的模块中导入它。

回答 2 投票 0

如何使用 httpClient 从 Exchange 获取数据?

我想从 NSE(印度国家证券交易所)获取数据。 NSE 提供 API 来获取数据。例如 https://www.nseindia.com/api/option-chain-indices?symbol=BANKNIFTY 但如果我去...

回答 1 投票 0

ASP.NET Core Web API - 如何基于 HttpStatus 在第三方 API 中返回响应

在我的 ASP.NET Core-6 Web API 中,我正在使用第三方 API,返回的响应应该基于 Http 状态 我收到了供应商的这些回复: 错误的请求: { “响应 C...

回答 0 投票 0

C# 无法使用 HttpRequestMessage 发布数据并获得 400 状态

我尝试了几种不同的方法我无法让 pipelineId 发布(接收 400),请参见下面的代码: { client.BaseAddress = new Uri(_serviceConfig.DataGapsBaseUrl); 变种请求...

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.