2012-11-11 2 views
1

Google Cloud Messaging Technology를 사용하여 asp.net (VB.Net)에서 개발 한 웹 응용 프로그램의 데이터를 Android 장치로 보내려면 다음 코드가 필요합니다. 원격 서버에서 오류를 반환했습니다 : (401) Unauthorized.GCM 및 ASP.net을 사용하여 데이터 보내기

코드는 다음과 같습니다 :이 문제를 해결할 수있는 방법을

Dim regID As String = "REG_ID_ that i got when I developed the Clint side of this technology" 
Dim request As WebRequest = WebRequest.Create("https://android.googleapis.com/gcm/send") 
request.Method = "POST" 
request.ContentType = "application/x-www-form-urlencoded" 
request.Headers.Add("Authorization:Here_I_Provided_the_Server_API_Key") 
Dim collapsKey = Guid.NewGuid.ToString("N") 
Dim postdata As String = regID + TextBox1.Text + collapsKey 
Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postdata) 
request.ContentLength = byteArray.Length 
Dim dataStream As Stream = request.GetRequestStream 
dataStream.Write(byteArray, 0, byteArray.Length) 
dataStream.Close() 
Dim resposne As WebResponse = request.GetResponse 
Dim dataresponse As Stream = resposne.GetResponseStream 
Dim reader As New StreamReader(dataresponse) 
Dim sResponseFromServer As String = reader.ReadToEnd 
Label1.Text = sResponseFromServer 
reader.Close() 
dataresponse.Close() 
resposne.Close() 

어떤 아이디어.

관련

Husam

답변

0

어쩌면 대신

"Authorization:Here_I_Provided_the_Server_API_Key" 

의 당신이 시도해야을

또한
"Authorization: key=Here_I_Provided_the_Server_API_Key" 

당신이 처리하는 응용 프로그램 측에서 정확한 발신자 ID를 가지고 있는지 확인 GCM 요청

+0

또한 Demonick이 나에게 제안하는 것처럼 ** request.Headers.Add ("Sender : id = the_ID_of_My_Project") ** 요청에 다른 헤더를 추가했습니다. 그리고 나는 또한 다음과 같이 Dim postdata As String = regID + TextBox1.Text + collapsKey **를 다음과 같은 Dim postdata As String = "registration_id ="+ regID + "& data.message ="+ TextBox1.Text + "& collapse_key ="+ collapsKey로 변경합니다. ** –

관련 문제