Ik zie probleem in het posten van beelddossiers als binaire gegevens aan een webpage onder ogen.
If I post de gegevens van de Vorm gebruikend de markering Action=URL van de Vorm en Method= " Post ", I m die het vereiste succes result.
http://www.w3.org/1 999/xhtml " >
But " voorlegt ", als ik probeer om de beeldgegevens gebruikend „HTTPWebRequest“ door de kopballen te vormen, gegevens en aanhangwagens, I m te verzenden bekwaam om de reactie van geposte URL te krijgen, maar de beelden zijn niet morphed. [Het doel URL „ http://www.babypredictor. com.au/gat eway/api.php“ ontvangt 1 of 2 beelden die wij en morph hen in één enkele pic hebben gepost en het succes URL verzonden].
Looks I m één of andere fout in het HTTP- bericht doen die terwijl het posten aan het doel URL vormen zich. Kan iedereen me alstublieft helpen om de kwestie voor te stellen en het te krijgen het werk zoals de normale Post van de Vorm.
Attached is mijn oplossing. U kunt het gebruiken VERSUS geprobeerde 2008.
I openen gebruikend Firebug om de post ruwe gegevens van HTTP te zuiveren en het kijkt bijna zelfde voor zowel het posten van de VORM als het Posten HTTPWebRequest, maar de beelden zijn niet morphed voor mijn recenter. De wens iemand kan de kwestie vinden en de hulp me.
Here is mijn HTTPWebRequest PostCode Snippet.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// openbare nietige HttpUploadFile (koord url, HttpPostedFile file1, HttpPostedFile file2, koord paramName, koord contentType, NameValueCollection nvc) //public nietige HttpUploadFile (koord url, koord file1, koord file2, koord paramName, koord contentType, NameValueCollection nvc) { //log.Debug (koord. Formaat ( " Uploading {0} {1}“, dossier, url)); koordgrens = „--“ + DateTime.Now.Ticks.ToString („x“); /> byte .GetBytes (“ \ r \ n--“ + grens + „\ r \ n“);
HttpWebRequest wr = (HttpWebRequest) WebRequest.Create (url); wr.ContentType = „meerdelig/vorm-gegevens; boundary=“ + grens; wr. Methode = „POST“; wr.KeepAlive = waar; wr. Geloofsbrieven = System.Net.CredentialCache.DefaultCredentials; wr.Referer = url;
wr.Keur = „tekst/xml, toepassing/xml, application/xhtml+xml, tekst/html goed; q=0.9, text/plain; q=0.8, image/png, */*; q=0.5“; wr.UserAgent = „Mozilla/4.0 (compatibel systeem; MSIE 6.0; Vensters NT 5.1; Q312461; .NET CLR 1.0.3705)“; //wr.Accept = „beeld/GIF, image/x-xbitmap, beeld/jpeg, beeld/pjpeg, application/vnd.ms-excel, toepassing/msword, application/x-schokgolf/>ash, */*“; /> Stroom
koord
koord
foreach (koordsleutel in nvc. Sleutel) { rs. Schrijf (boundarybytes, 0, boundarybytes. Lengte); formitem = koord. Formaat (formdataTemplate, sleutel, nvc [sleutel]); /> byte .GetBytes (formitem); rs.Schrijf (formitembytes, 0, formitembytes. Lengte); }
rs. Schrijf (boundarybytes, 0, boundarybytes. Lengte); koord headerTemplate = „tevreden-Regeling: vorm-gegevens; name= \“ {0} \ „; filename= \“ {1} \ „\ r \ nContent-Type: {2} \ r \ n \ r \ n“; /> kopbal te, paramName, file1, contentType); /> byte .GetBytes (header); rs. Schrijf (headerbytes, 0, headerbytes. Lengte); /> Stroom
//FileStream fileStream = nieuwe FileStream (file1.FileName, FileMode.Open, FileAccess.Read); byte [] buffer = nieuwe byte [4096]; int. bytesRead = 0; terwijl ((bytesRead = file1Stream.Read (buffer, 0, buffer. Lengte)) ! = 0) {/> byte .GetBytes (System.Text.ASCIIEncoding.ASCII.GetString (buffer)); rs. Schrijf (encodedbuffer, 0, bytesRead); } //fileStream.Close ();
als (file2.FileName! het =string. Empty) {/> kopbal te, paramName, file2, contentType); headerbytes = System.Text.Encoding.ASCII.GetBytes (header); rs. Schrijf (headerbytes, 0, headerbytes. Lengte);
//fileStream = nieuwe FileStream (file2.FileName, FileMode.Open, FileAccess.Read); /> Stroom bytesRead = 0; terwijl ((bytesRead = file2Stream.Read (buffer, 0, buffer. Lengte)) ! = 0) {/> byte .GetBytes (System.Text.ASCIIEncoding.ASCII.GetString (buffer)); rs. Schrijf (buffer, 0, bytesRead); } //fileStream.Close (); }
byte [] aanhangwagen = System.Text.Encoding.ASCII.GetBytes (“ \ r \ n--“ + grens + „--\ r \ n“); rs. Schrijf (aanhangwagen, 0, aanhangwagen. Lengte); rs. Sluit ();
WebResponse wresp = verklaart nietig; try { wresp = wr.GetResponse (); /> Stroom
StreamReader reader2 = nieuwe StreamReader (stream2); //log.Debug (koord. Formaat (/> " geuploade het Dossier koordreactie = reader2.ReadToEnd ();
als (response.ToLower (). Contains („success“)) { koord ResponseURL = reactie. Substring (response.IndexOf (/> " succes ) + „succes: “. Lengte);
Result.Text = reactie + „
“ + „“; } else Result.Text = reactie + „ “; />} vangst { //log.Error („Fout die dossier uploaden“, ex); } finally { als (wresp! = verklaar) nietig { wresp. Sluit (); wresp = verklaart nietig; } wr = verklaart nietig; } }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-Pamboo
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:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
|
" codeBody "
using Systeem;
het gebruiken van System.Collections.Generic;
het gebruiken van System.Linq;
het gebruiken van System.Web;
het gebruiken van System.Web.UI;
het gebruiken van System.Web.UI.WebControls;
het gebruiken van System.Drawing;
het gebruiken van System.IO;
het gebruiken van System.Net;
het gebruiken van System.Text;
het gebruiken van System.Collections;
het gebruiken van System.Collections.Specialized;
het gebruiken van System.Security.Cryptography;
het gebruiken van System.Configuration;
namespace YuuBabies
{
openbare gedeeltelijke klasse _Default: System.Web.UI.Page
{
privé koord secrect_code;
beschermde nietige Page_Load (objecten afzender, EventArgs e)
{
als (! IsPostBack)
{
secrect_code = ConfigurationManager.AppSettings [„Secret_code“];
Willekeurige willekeurig = nieuwe Willekeurig ();
int. randomNo = willekeurig. Daarna (99999);
transaction_id. Tekst = (randomNo < 1000)? (1000 + randomNo) .ToString (): randomNo.ToString ();
veiligheid. Tekst = GetMD5Hash („yuz00b3byP“ + transaction_id. Tekst);
}
}
openbaar koord GetMD5Hash (koord die originalString)
{
byte [] textBytes = System.Text.Encoding.Default.GetBytes (het originalString);
probeer
{
System.Security.Cryptography.MD5CryptoServiceProvider cryptHandler;
cryptHandler = nieuwe System.Security.Cryptography.MD5CryptoServiceProvider ();
byte [] knoeiboel = cryptHandler.ComputeHash (textBytes);
het koord root = "";
foreach (byte a in knoeiboel)
{
als (a < 16)
root += „0“ + a.ToString („x“);
anders
root += a.ToString („x“);
}
de terugkeer root;
}
vangst
{
werp;
}
}
beschermde nietige Submit_Click (objecten afzender, EventArgs e)
{
HttpPostedFile file1 = image1Data.PostedFile;
HttpPostedFile file2 = image2Data.PostedFile;
als (file1.FileName! het =string. Leeg)
{
NameValueCollection nvc = nieuwe NameValueCollection ();
nvc. Voeg toe („image1DataID“, image1DataID.Text);
nvc. Voeg toe („image2DataID“, image2DataID.Text);
nvc. Voeg toe („transaction_id“, transaction_id. Tekst);
nvc. Voeg toe („veiligheid“, veiligheid. Tekst);
nvc. Voeg toe („misc1“, misc1.Text);
nvc. Voeg toe („misc2“, misc2.Text);
nvc. Voeg toe („misc3“, misc3.Text);
nvc. Voeg toe („misc4“, misc4.Text);
//HttpUploadFile („http://www.babypredictor.com.au/gateway/api.php“, imagefile1FullPathName.Value, imagefile2FullPathName.Value, „dossier“, „beeld/jpeg“, nvc);
HttpUploadFile („http://www.babypredictor.com.au/gateway/api.php“, file1, file2, „dossier“, „beeld/jpeg“, nvc);
}
}
openbare nietige HttpUploadFile (koord url, HttpPostedFile file1, HttpPostedFile file2, koord paramName, koord contentType, NameValueCollection nvc)
//public nietige HttpUploadFile (koord url, koord file1, koord file2, koord paramName, koord contentType, NameValueCollection nvc)
{
//log.Debug (koord. Formaat („Uploadend {0} aan {1}“, dossier, url));
koord grens = „“ + DateTime.Now.Ticks.ToString („x“);
byte [] boundarybytes = System.Text.Encoding.ASCII.GetBytes („\ r \ n--“ + grens + „\ r \ n“);
HttpWebRequest wr = (HttpWebRequest) WebRequest.Create (url);
wr.ContentType = „meerdelig/vorm-gegevens; boundary=“ + grens;
wr. Methode = „POST“;
wr.KeepAlive = waar;
wr. Geloofsbrieven = System.Net.CredentialCache.DefaultCredentials;
wr. Referer = url;
wr. Keur = „tekst/xml, toepassing/xml, toepassing/xhtml+xml, tekst/HTML goed; q=0.9, tekst/vlakte; q=0.8, beeld/PNG, */*; q=0.5“;
wr.UserAgent = „Mozilla/4.0 (compatibel systeem; MSIE 6.0; Vensters NT 5.1; Q312461; .NET CLR 1.0.3705)“;
//wr.Accept = „beeld/GIF, image/x-xbitmap, beeld/jpeg, beeld/pjpeg, toepassing/vnd.ms-blinkt, toepassing/msword, application/x-schokgolf-flits, */*“ uit;
Stroom rs = wr.GetRequestStream ();
koord formitem, kopbal;
koord formdataTemplate = „tevreden-Regeling: vorm-gegevens; name= \“ {0} \ „\ r \ n \ r \ n {1}“;
foreach (koordsleutel in nvc. Sleutel)
{
rs. Schrijf (boundarybytes, 0, boundarybytes. Lengte);
formitem = koord. Formaat (formdataTemplate, sleutel, nvc [sleutel]);
byte [] formitembytes = System.Text.Encoding.ASCII.GetBytes (formitem);
rs. Schrijf (formitembytes, 0, formitembytes. Lengte);
}
rs. Schrijf (boundarybytes, 0, boundarybytes. Lengte);
koord headerTemplate = „tevreden-Regeling: vorm-gegevens; name= \“ {0} \ „; filename= \“ {1} \ „\ r \ nContent-type: {2} \ r \ n \ r \ n“;
kopbal = koord. Formaat (headerTemplate, paramName, file1, contentType);
byte [] headerbytes = System.Text.Encoding.ASCII.GetBytes (kopbal);
rs. Schrijf (headerbytes, 0, headerbytes. Lengte);
Stroom file1Stream = file1.InputStream;
//FileStream fileStream = nieuwe FileStream (file1.FileName, FileMode.Open, FileAccess.Read);
byte [] buffer = nieuwe byte [4096];
int. bytesRead = 0;
terwijl ((bytesRead = file1Stream.Read (buffer, 0, buffer. Lengte)) ! = 0)
{
byte [] encodedbuffer = System.Text.Encoding.ASCII.GetBytes (System.Text.ASCIIEncoding.ASCII.GetString (buffer));
rs. Schrijf (encodedbuffer, 0, bytesRead);
}
//fileStream.Close ();
als (file2.FileName! het =string. Leeg)
{
kopbal = koord. Formaat (headerTemplate, paramName, file2, contentType);
headerbytes = System.Text.Encoding.ASCII.GetBytes (kopbal);
rs. Schrijf (headerbytes, 0, headerbytes. Lengte);
//fileStream = nieuwe FileStream (file2.FileName, FileMode.Open, FileAccess.Read);
Stroom file2Stream = file2.InputStream;
bytesRead = 0;
terwijl ((bytesRead = file2Stream.Read (buffer, 0, buffer. Lengte)) ! = 0)
{
byte [] encodedbuffer = System.Text.Encoding.ASCII.GetBytes (System.Text.ASCIIEncoding.ASCII.GetString (buffer));
rs. Schrijf (buffer, 0, bytesRead);
}
//fileStream.Close ();
}
byte [] aanhangwagen = System.Text.Encoding.ASCII.GetBytes („\ r \ n--“ + grens + „--\ r \ n“);
rs. Schrijf (aanhangwagen, 0, aanhangwagen. Lengte);
rs. Sluit ();
WebResponse wresp = verklaart nietig;
probeer
{
wresp = wr.GetResponse ();
Stroom stream2 = wresp.GetResponseStream ();
StreamReader reader2 = nieuwe StreamReader (stream2);
//log.Debug (koord. Formaat („geuploade het Dossier, serverreactie is: {0}“, reader2.ReadToEnd ()));
koord reactie = reader2.ReadToEnd ();
als (response.ToLower (). Bevat („succes“))
{
koord ResponseURL = reactie. Substring (response.IndexOf („succes: “) + „succes: “. Lengte);
Result.Text = reactie + „
“ + „“;
}
anders
Result.Text = reactie + „ “;
}
vangst (ex Uitzondering)
{
//log.Error („Fout die dossier uploaden“, ex);
}
tot slot
{
als (wresp! = verklaar) nietig
{
wresp. Sluit ();
wresp = verklaar nietig;
}
wr = verklaar nietig;
}
}
}
}
|
|