{ "id": "142460", "key": "TIMOB-18341", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "16593", "description": "Release 4.0.0", "name": "Release 4.0.0", "archived": false, "released": true, "releaseDate": "2015-05-21" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2015-02-12T08:57:11.000+0000", "created": "2015-01-07T23:02:51.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "qe-3.5.0" ], "versions": [ { "id": "16676", "description": "Release 3.4.1", "name": "Release 3.4.1", "archived": false, "released": true, "releaseDate": "2014-11-14" }, { "id": "16704", "description": "Release 3.5.0", "name": "Release 3.5.0", "archived": false, "released": true, "releaseDate": "2015-01-13" } ], "issuelinks": [], "assignee": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2015-02-12T08:57:11.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "*Details:* Content-Type header is malformed when making a multipart/form-data POST request.\r\n\r\n*Note:* This is *not a regression* as this occurs in 3.4.1.GA.\r\n\r\n*Steps to reproduce:*\r\n1. Create a Titanium app with the app.js attachment and include cricket.wav attachment in the Resources folder\r\n2. In app.js, on line 13, replace {{}} with your machine's IP address; your device and machine should be on the same wifi network\r\n3. Install app to device\r\n4. Next, download local_server.js attachment and run it via terminal: {{node local_server.js}}\r\n5. In the app, press the button\r\n\r\n*Actual:* In terminal, the boundary parameter is not immediately after Content-Type multipart/form-data:\r\n{code}\r\n$ node local_server.js \r\nheaders: {\r\n\t\"host\": \"172.16.3.225:1337\",\r\n\t\"x-titanium-id\": \"962dd664-7f04-4340-8273-1c0e7d4b4b51\",\r\n\t\"x-requested-with\": \"XMLHttpRequest\",\r\n\t\"accept\": \"*/*\",\r\n\t\"content-type\": \"multipart/form-data; charset=utf-8; boundary=0xTibOuNdArY_1420671499\",\r\n\t\"content-length\": \"81078\",\r\n\t\"accept-language\": \"en-us\",\r\n\t\"accept-encoding\": \"gzip, deflate\",\r\n\t\"connection\": \"keep-alive\",\r\n\t\"user-agent\": \"Appcelerator Titanium/3.4.1 (iPhone/8.1; iPhone OS; en_US;)\"\r\n}\r\n{code}\r\n*Expected:* The boundary parameter should be immediately after Content-Type multipart/form-data", "attachment": [ { "id": "53463", "filename": "app.js", "author": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-01-07T23:02:51.000+0000", "size": 826, "mimeType": "text/javascript" }, { "id": "53464", "filename": "cricket.wav", "author": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-01-07T23:02:51.000+0000", "size": 80923, "mimeType": "audio/wav" }, { "id": "53462", "filename": "local_server.js", "author": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-01-07T23:02:51.000+0000", "size": 240, "mimeType": "text/javascript" } ], "flagged": false, "summary": "iOS: HTTPClient - Content-Type header is malformed when making a multipart/form-data POST request", "creator": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "environment": "Appcelerator Studio, build: 3.4.1.201410281743\r\nSDK build: 3.4.1.GA, 3.5.0.v20150106224118\r\nCLI: 3.4.1\r\nAlloy: 1.5.1\r\nXcode: 6.2 beta 3\r\nDevices: iphone 5 (8.1.1)", "closedSprints": [ { "id": 330, "state": "closed", "name": "2015 Sprint 03 SDK", "startDate": "2015-01-31T01:00:05.245Z", "endDate": "2015-02-14T01:00:00.000Z", "completeDate": "2015-02-16T21:01:51.914Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "342275", "author": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "body": "PR by community member https://github.com/appcelerator/APSHTTPClient/pull/19\r\nReviewing it...", "updateAuthor": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-02-05T18:52:52.000+0000", "updated": "2015-02-05T18:52:52.000+0000" }, { "id": "343037", "author": { "name": "kagrawal", "key": "kagrawal", "displayName": "Khushbu Agrawal", "active": true, "timeZone": "Asia/Shanghai" }, "body": "Verified with below Test Environment:\r\n1. Mac OSX Yosemite 10.10\r\n2. Appcelerator Studio, build: 4.0.0.201502111458\r\n3. Titanium SDK, build: 4.0.0.v20150211151855 \r\n4. Titanium CLI, build: 3.6.0-dev\r\n5. Alloy: 1.5.1\r\n6. iPhone 6+ with iOS 8.1\r\n\r\nContent-Type header is not malformed as the boundary parameter is immediately after Content-Type multipart/form-data as shown in terminal.\r\n{code}\r\nheaders: {\r\n\t\"host\": \"192.168.0.109:1337\",\r\n\t\"content-type\": \"multipart/form-data;boundary=0xTibOuNdArY_1423730453\",\r\n\t\"accept-language\": \"en-us\",\r\n\t\"accept-encoding\": \"gzip, deflate\",\r\n\t\"connection\": \"keep-alive\",\r\n\t\"accept\": \"*/*\",\r\n\t\"user-agent\": \"Appcelerator Titanium/4.0.0 (iPhone/8.1; iPhone OS; en_SG;)\",\r\n\t\"content-length\": \"81078\",\r\n\t\"x-titanium-id\": \"61f383d9-0410-4b39-8127-92dce821040c\",\r\n\t\"x-requested-with\": \"XMLHttpRequest\"\r\n}\r\n{code}\r\n\r\nClosing this ticket.", "updateAuthor": { "name": "kagrawal", "key": "kagrawal", "displayName": "Khushbu Agrawal", "active": true, "timeZone": "Asia/Shanghai" }, "created": "2015-02-12T08:53:00.000+0000", "updated": "2015-02-12T08:56:53.000+0000" }, { "id": "343038", "author": { "name": "kagrawal", "key": "kagrawal", "displayName": "Khushbu Agrawal", "active": true, "timeZone": "Asia/Shanghai" }, "body": "Reopened issue for changing the comment code.", "updateAuthor": { "name": "kagrawal", "key": "kagrawal", "displayName": "Khushbu Agrawal", "active": true, "timeZone": "Asia/Shanghai" }, "created": "2015-02-12T08:55:34.000+0000", "updated": "2015-02-12T08:55:34.000+0000" } ], "maxResults": 3, "total": 3, "startAt": 0 } } }