Skip to content

Unable to send post form using http Library because of call of Uri.encodeQueryComponent with 2 parameters instead 1 ... #16131

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
DartBot opened this issue Jan 16, 2014 · 6 comments
Labels
area-pkg Used for miscellaneous pkg/ packages not associated with specific area- teams. P3 A lower priority bug or feature request

Comments

@DartBot
Copy link

DartBot commented Jan 16, 2014

This issue was originally filed by [email protected]


What steps will reproduce the problem?
create a dart file like this :
import 'package:http/http.dart' as http;

main() {
  http.post('http://httpbin.org/post', body: {'key1': 'value1', 'key2': 'value2'}).then((response) {
    print("Response status: ${response.statusCode}");
    print("Response body: ${response.body}");
  });
}

What is the expected output? What do you see instead?
I expect to get a request with form data ... BUT i got
Unhandled exception:
No static method 'encodeQueryComponent' declared in class 'Uri'.

NoSuchMethodError: incorrect number of arguments passed to method named 'encodeQueryComponent'
Receiver: Type: class 'Uri'
Tried calling: encodeQueryComponent("key1", encoding: Instance of 'Utf8Codec')
Found: encodeQueryComponent(String)

­0 _rootHandleUncaughtError.<anonymous closure>.<anonymous closure> (dart:async/zone.dart:677)

­1 _asyncRunCallback (dart:async/schedule_microtask.dart:18)

­2 _asyncRunCallback (dart:async/schedule_microtask.dart:21)

­3 _createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:11)

­4 _Timer._createTimerHandler._handleTimeout (timer_impl.dart:151)

­5 _Timer._createTimerHandler._handleTimeout (timer_impl.dart:159)

­6 _Timer._createTimerHandler._handleTimeout (timer_impl.dart:159)

­7 _Timer._createTimerHandler.<anonymous closure> (timer_impl.dart:166)

­8 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:93)

What version of the product are you using? On what operating system?
http-0.9.2+1 library

Please provide any additional information below.

@DartBot
Copy link
Author

DartBot commented Jan 16, 2014

This comment was originally written by [email protected]


After exchange on #irc channel It seems that pubspec of the http package wasn't updated to require an sdk > 1.1 !

[11:33] <ioull_> Indead the method Uri.encodeQueryComponent is declared with only one parameter but it is called with 2 parameters in http lib
[11:34] <floitsch> To clarify: you are using the http package v0.9.2+1 ?
[11:34] <floitsch> what sdk do you use?
[11:36] <ioull_> sorry : Dart SDK version 1.0.0.10_r30798
[11:37] <floitsch> The bleeding-edge version of encodeQueryComponent allows two arguments.
[11:37] <floitsch> I'm guessing the pubspec of the http package wasn't updated to require an sdk > 1.0
[11:38] <floitsch> ioull_: two things you can do.
[11:38] <ioull_> OK ! So I need update my sdk or downgrade my http lib ;-)
[11:38] <floitsch> 1. downgrade to an earlier http package. (specify in the pubspec file which version you want)
[11:38] <floitsch> 2. upgrade the sdk.

@floitschG
Copy link
Contributor

r30828 introduced usage of encodeQueryComponent with two arguments, but didn't update the pubspec file.

https://codereview.chromium.org/102973002/diff/1/pkg/http/lib/src/utils.dart


cc @nex3.
Added Area-Pkg, Triaged labels.

@nex3
Copy link
Member

nex3 commented Jan 16, 2014

We as a team need to talk about how to handle packages' SDK constraints in general. It's not feasible for every package to track down the minimum SDK version that supports every feature used in a package.


Added Started label.

@sethladd
Copy link
Contributor

Hi,

This is marked as Started. Are we still working on it?


Removed Priority-Unassigned label.
Added Priority-Low, Pkg-Http labels.

@nex3
Copy link
Member

nex3 commented Jul 18, 2014

The http package now has an appropriate SDK constraint.


Added Fixed label.

@DartBot DartBot added Type-Defect P3 A lower priority bug or feature request area-pkg Used for miscellaneous pkg/ packages not associated with specific area- teams. labels Jul 18, 2014
@DartBot
Copy link
Author

DartBot commented Jun 5, 2015

This issue has been moved to dart-lang/http#12.

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-pkg Used for miscellaneous pkg/ packages not associated with specific area- teams. P3 A lower priority bug or feature request
Projects
None yet
Development

No branches or pull requests

4 participants