Reqwest-form-feature-required
/SKILLCorrection des erreurs "aucune méthode nommée `form` trouvée" ou "utilisation de la méthode non résolue `form`".
name: reqwest-form-feature-required
description: |
Fix for "no method named form found" or "use of unresolved method form" errors
when using reqwest in Rust. Use when: (1) reqwest .form() method not found at compile
time, (2) sending URL-encoded form data to APIs like OAuth token endpoints,
(3) upgrading from older reqwest versions where form worked without feature flag.
The form feature must be explicitly enabled in Cargo.toml for reqwest 0.11+.
author: Claude Code
version: 1.0.0
date: 2026-01-23
reqwest Form Feature Required
Problem
When using reqwest to send form-encoded data (like OAuth token requests), the .form()
method may not be available, causing confusing compiler errors that suggest the method
doesn't exist.
Context / Trigger Conditions
Error messages you'll see:
error[E0599]: no method named `form` found for struct `RequestBuilder` in the current scopeor
error[E0599]: no variant or associated item named `form` found
help: there is a method `or` with a similar nameCommon scenarios:
- Making OAuth2 token refresh/exchange requests
- Submitting form data to APIs that expect
application/x-www-form-urlencoded - Migrating code from reqwest < 0.11 where
formwas available by default - Using workspace dependencies where not all features are inherited
Solution
Add the form feature to your reqwest dependency in Cargo.toml:
# Single crate
reqwest = { version = "0.13", features = ["form"] }
# With other common features
reqwest = { version = "0.13", features = ["json", "form", "rustls"] }
# In workspace Cargo.toml
[workspace.dependencies]
reqwest = { version = "0.13", default-features = false, features = ["json", "form", "rustls", "http2"] }Note: In reqwest 0.11+, many methods are behind feature flags:
json- for.json()methodform- for.form()methodmultipart- for multipart form uploadscookies- for cookie jar supportstream- for streaming request/response bodies
Verification
After adding the feature, run cargo check and the error should be resolved:
cargo check
# Should compile without the "no method named form" errorExample
Before (fails to compile):
let response = client
.post("https://oauth2.googleapis.com/token")
.form(&[
("client_id", "xxx"),
("client_secret", "yyy"),
("grant_type", "refresh_token"),
])
.send()
.await?;Fix in Cargo.toml:
[dependencies]
reqwest = { version = "0.13", features = ["form"] }Notes
- This is a common gotcha when using
default-features = falsewith reqwest - The error message suggests
oras an alternative method, which is misleading - When using workspace dependencies, ensure features are properly propagated to member crates
- The
formmethod serializes data asapplication/x-www-form-urlencoded - For file uploads, use
multipartfeature and.multipart()method instead