Hallo,
ik heb een probleem bij een stukje code dat ik nu al zo'n 4 uur proberen werkend te krijgen.
De code upload een plaatje van een gebruiker op TwitPic.
Dit is mijn HTTP Post functie die ik heb aangepast.
Ik denk zelf dat er ergens bij:
+ "&media=" + fileData;
iets moet veranderen.
ik heb al een paar verschillende Encodings en zonder Encoding geprobeerd maar zonder resultaat.
Meestal krijg ik de error: "Wrong Parameters!".
Verder weet ik door debuggen, zeker dat alle data die woorden opgevraagd uit andere classes kloppen.
Hopelijk kan iemand mij een tip geven over hoe ik dit kan laten werken.
Groeten,
ik heb een probleem bij een stukje code dat ik nu al zo'n 4 uur proberen werkend te krijgen.
De code upload een plaatje van een gebruiker op TwitPic.
Dit is mijn HTTP Post functie die ik heb aangepast.
Ik denk zelf dat er ergens bij:
+ "&media=" + fileData;
iets moet veranderen.
ik heb al een paar verschillende Encodings en zonder Encoding geprobeerd maar zonder resultaat.
Meestal krijg ik de error: "Wrong Parameters!".
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
| public static string UploadPhoto(byte[] binaryImageData, string tweetMessage, string filename, TweetClient data) { string AccessToken = data.oauthTokens.AccessToken; string AccessSecret = data.oauthTokens.AccessTokenSecret; if (string.IsNullOrEmpty(tweetMessage)) { tweetMessage = " "; } string fileData = Encoding.GetEncoding("iso-8859-1").GetString(binaryImageData); string parameters = "key=" + Settings.TwitPic_Key + "&consumer_token=" + Settings.Twtr_ConsumerKey + "&consumer_secret=" + Settings.Twtr_ConsumerSecret + "&oauth_token=" + AccessToken + "&oauth_secret=" + AccessSecret + "&message=" + tweetMessage + "&media=" + fileData; //Ik denk dat hier iets moet veranderen want fileData is de data van het plaatje zelf WebRequest webRequest = WebRequest.Create(TWITPIC_UPLOAD_AND_POST_API_URL); webRequest.ContentType = "application/x-www-form-urlencoded"; webRequest.Method = "POST"; byte[] bytes = Encoding.ASCII.GetBytes(parameters); Stream os = null; try { // send the Post webRequest.ContentLength = bytes.Length; //Count bytes to send os = webRequest.GetRequestStream(); os.Write(bytes, 0, bytes.Length); //Send it } catch (WebException ex) { return "ERROR|Unable to make Request. API Down?"; } finally { if (os != null) { os.Close(); } } try { // get the response WebResponse webResponse = webRequest.GetResponse(); if (webResponse == null) { return "ERROR|Unable to make Request. API Down?"; } StreamReader sr = new StreamReader(webResponse.GetResponseStream()); string bla = sr.ReadToEnd().Trim(); JsonTextParser test = new JsonTextParser(); JsonObject jobject = test.Parse(bla); JsonObjectCollection collection = jobject as JsonObjectCollection; return "SUCCES|"+collection["url"].ToString(); } catch (WebException ex) { var resp = (HttpWebResponse)ex.Response; if (resp.StatusCode == HttpStatusCode.NotFound) { return "ERROR|Unable to make Request. API Down?"; } else if (resp.StatusCode == HttpStatusCode.BadRequest) { return "ERROR|Wrong Parameters!"; } else if (resp.StatusCode == HttpStatusCode.Unauthorized) { return "ERROR|Cannot login!"; } else { return "ERROR|Unknown Error!"; } } } // end HttpPost |
C#:
1
2
| byte[] image = TwitPic.ConvertImageToByteArray(Image.FromFile(DownloadFolder + @"\" + e.Filename), ImageFormat.Jpeg); Console.WriteLine(TwitPic.UploadImage(image, "Image:", e.Filename, TweetManager._Tweetings[user.Mail])); |
Verder weet ik door debuggen, zeker dat alle data die woorden opgevraagd uit andere classes kloppen.
Hopelijk kan iemand mij een tip geven over hoe ik dit kan laten werken.
Groeten,