Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 14 Next capture
2021 2022 2023
2 captures
13 Jun 22 - 14 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by Hotshot10101 · Jun 25, 2021 at 02:51 PM · jsonhttpwebrequest

Posting JSON data inside a form post urlencodes the json data

I need to send json data to a server that requires 2 parameters in a application/x-www-form-urlencoded format where the second parameter is the json data.

I am porting an application from Xcode swift to Unity.

When the xcode app sends the data it is using a POST and the content type is set to application/x-www-form-urlencoded. When the server receives the data here is what it gets:

Parameters: {"access_token"=>"[FILTERED]", "json_data"=>[{"target"=>"120",

I cut off the rest of the data because the important part is there at the beginning of the json data for the json_data parameter.

I have tried several things including ideas from this thread and have my own UploadHandlerRaw and all that. When I look at www.uploadhandler.data and reencode it as a string this is what I get:

access_token=[FILTERED]&json_data=[{"target":120,

Looks like it should work, right? Well, when it gets to the server it looks like this:

access_token=[FILTERED]&json_data="[{\"target\":120,

It adds a leading double quote (") and slashes to all of the double quotes in the json data. Xcode doesn't do that.

So it looks like the UnityWebRequest component is url encoding where the xcode isn't even though the xcode code is using the same content-type value that I am using.

I have tried changing the content-type to application/json, but when I do then server doesn't know it is a form encoded input so it doesn't know how to get the 2 parameters. Only the parameter value for json_data is actually json, so the main content-type has to be x-www-form-urlencoded.

So how do I get the same behavior that xcode is giving? I need to use x-www-form-urlencoded as the content-type to pass 2 parameters to the POST, but the value of the second parameter needs to be the raw json data without a leading double quote and without the slashes in front of the the double quotes in the json data.

Here is my current implementation:

var raw = Encoding.UTF8.GetBytes($"access_token={AccessToken}&json_data={JSONData}"); UnityWebRequest www = new UnityWebRequest(APIURLPrefix + "/users/add_json_data", "POST"); www.SetRequestHeader("content-type", "application/x-www-form-urlencoded; charset=utf-8"); www.uploadHandler = new UploadHandlerRaw(raw); www.uploadHandler.contentType = "application/json"; www.downloadHandler = new DownloadHandlerBuffer(); yield return www.SendWebRequest();

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

120 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Problem deserialize Json api rest 1 Answer

Write multiple GUI slider values to json file in Unity 0 Answers

Saving object references into json breaks on restarting the editor 0 Answers

Save Load Unity JSON 2 Answers

Populate JSON data to dropdown list 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges