Skip to content
This repository was archived by the owner on Sep 26, 2022. It is now read-only.
This repository was archived by the owner on Sep 26, 2022. It is now read-only.

iOS and Android handle form-uurlencoded requests differently #270

Description

@kito99

Describe the bug
iOS and Android handle form-uurlencoded requests differently. I believe the intent is to require the data property to be an object when making a the request, but that's not enforced on the JavaScript side. At the iOS layer, if the data property is a string, it's sent straight though; Android, on the other hand, expects it to be an object, and throws an exception if it's not.

To Reproduce
Make a call to Http.request() like so:

const response = await Http.request(
{
  "url":"https://foo.com",
  "method":"POST",
  "headers":{"Accept":"application/json","Content-Type":"application/x-www-form-urlencoded"},
  "data":"a=b&b=c&c=d"
}

Expected behavior
The behavior should be the same on both Android and iOS. If the intention is that form requests must have data specified as an object, then both platforms should throw an exception. Otherwise, both should expect a raw string.

Smartphone (please complete the following information):

  • Device: iPhone 11 Pro
  • OS: iOS 15.5
  • Browser [Capacitor web view]
  • Simulator

Smartphone (please complete the following information):

  • Device: Android Pixel 4
  • OS: API 30
  • Browser [Capacitor web view]
  • Simulator

Additional context

Relevant Swift code:

if let strVal = try? getRequestDataAsString(body) {

Relevant Java code:

Clearly the workaround here is to just pass an object, but fixing this would save folks time!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions