You might see that the Dropbox Community team have been busy working on some major updates to the Community itself! So, here is some info on what’s changed, what’s staying the same and what you can expect from the Dropbox Community overall.
Forum Discussion
ingconti
3 years agoHelpful | Level 5
Re: Error in call to API function "files/upload": HTTP header "Dropbox-API-Arg":
good you are available
Said so, pls let me know How to fix it.
to recap:
a) my ap is written in swift, NO other components (neither official dropbox library, too big and too messy)
b) it did ...
ingconti
Helpful | Level 5
1) You wrote: "I was referring to using something like JSONSerialization.data to build the JSON string from a dictionary for you, like in our example.'
I Did write and teste din other environments and it worked, I have extensive Unit testing about.
2) d "Fullwidth Low Line" (U+FF3F).
3 consideration:
2a) it WORKED for an year, so what changed?
2b) THIS should be the 1st response
3b) why giving back such message should be a problem for backend?
I wil try Your encoding function, I will re-post.
ingconti
3 years agoHelpful | Level 5
seems working !
THX
I used a reduced version for simple string, as path:
func DB_utf8Decode(_ data: Data) -> String {
return NSString(data: data, encoding: String.Encoding.utf8.rawValue)! as String
}
func DB_asciiEscape(_ s: String) -> String {
var out: String = ""
for char in s.unicodeScalars {
var esc = "\(char)"
if !char.isASCII {
esc = NSString(format:"\\u%04x", char.value) as String
} else {
if (char == "\u{7F}") {
esc = "\\u007f"
} else {
esc = "\(char)"
}
}
out += esc
}
return out
}
- ingconti3 years agoHelpful | Level 5
as a last side note:
you had to write:
- C# (2 cersions)
- java
- JavaScript
Objective-C
Python
PHP
Swift
So 8 versions when simply accepting binary JSON on server would have prevented all this stuff? and / or fixing on server directly?
seems, as minimum, suboptimal.
- Greg-DB3 years agoDropbox Staff
Thanks for following up. I'm glad to hear you got this working, and thanks for the feedback!
- ingconti3 years agoHelpful | Level 5
a more "swift" solution for string with a copiale of Unit test:
func DB_asciiEscape(_ s: String) -> String {
let out = s.unicodeScalars.reduce("", { (partialResult: String, char: UnicodeScalar) -> String in
if !char.isASCII {
return partialResult + String(format:"\\u%04x", char.value)
} else {
if (char == "\u{7F}") {
return partialResult + "\\u007f"
} else {
return partialResult + "\(char)"
}
}
}
)
return out
}
//------ UNIT TESTS:
func testUtf8Decode(){
let unescaped = "/OUT/aaaaa_000.jpg"
let escaped = DB_asciiEscape(unescaped)
print(escaped)
let contains = escaped.contains("uff3f000.jpg")
XCTAssert(contains, "not ecaped")
}
func testUtf8Decode2(){
let unescaped = "αβγ.jpg"
let escaped = DB_asciiEscape(unescaped)
print(escaped)
let contains = escaped.contains("\\u03b1\\u03b2\\u03b3")
XCTAssert(contains, "not ecaped")
}
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
5,910 PostsLatest Activity: 3 days agoIf you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X or Facebook.
For more info on available support options for your Dropbox plan, see this article.
If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!