cancel
Showing results for 
Search instead for 
Did you mean: 

C# AIM code and non-english character

I use the C# sample posting code from the developer website, it works for all-english address. However, when I use non-english addresses like Montréal, it throws

Bytes to be written to the stream exceed the Content-Length bytes size specified.

when calling

myWriter.Write(strPost);
---> myWriter.Flush(); // throw exception
what I found out is the sample code using strPost.Length as HttpWebRequest.ContentLength, but non-english characters count more than 1 in stream. I tried other method,

like use

byte[] buffer = System.Text.Encoding.UTF8.GetBytes(strPost);

objRequest.ContentLength = buffer.Length;

...

myWriter =

new StreamWriter(objRequest.GetRequestStream(), System.Text.Encoding.UTF8);

myWriter.Write(buffer);

myWriter.Close();

I got Cannot close stream until all bytes are written.

 

So I wonder what's the correct code should be.

chengbao
Member
4 REPLIES 4

Hey chengbao,

 

Unfortunately, non-English characters are not allowed in any of our APIs. Try submitting the request with standard English characters and see if that works.

 

Thanks,

Michelle

Developer Community Manager

Michelle
All Star

Michelle - 


Can you please provide sample code on how to handle International Address? Or Should we not pass the address if the country is outside US and Canada? 

 

Please help as we are having trouble with international customers trying to checkout.

 

Thanks

TechMate  

We're having this same issue.  Was a workaround ever suggested?

 

I've seen another post at - http://forums.asp.net/t/1396312.aspx/1 - which suggests that this command might work:

request.GetPreloadedEntityBody();

 

Can you advise please?

 

Thanks,

Rafi

 

Hi,
 
You should no longer see any issues from Authorize.Net accepting these international characters. It looks like the error that you are seeing is something within the .Net architecture. Unfortunately, we don't have a workaround that we can provide you.
 
Thanks,
Joy