using
System;
using
System.Collections.Generic;
using
System.Web;
using
System.Xml;
using
System.IO;
using
System.Text;
using
System.Collections;
using
System.Net;
using
System.Threading;
namespace
Haier1
{
class
Program
{
public
static
Hashtable getCookieMap()
{
string
sPath
=
"
d:\\cookie.txt
"
;
Hashtable maps
=
new
Hashtable();
FileStream fs
=
new
FileStream(sPath, FileMode.Open);
StreamReader rf
=
new
StreamReader(fs, System.Text.Encoding.GetEncoding(
"
gb2312
"
));
string
hm
=
""
;
try
{
do
{
hm
=
rf.ReadLine();
}
while
(
!
rf.EndOfStream);
Console.WriteLine(hm);
String[] s1
=
hm.Split(
'
;
'
);
//
Console.Write(s1.Length);
for
(
int
i
=
0
; i
<
s1.Length; i
++
)
{
int
pos
=
s1[i].IndexOf(
'
=
'
);
String value
=
s1[i].Substring(pos
+
1
);
String name
=
s1[i].Substring(
0
, pos);
name
=
name.Trim();
//
Console.WriteLine(name + ":" +value);
maps.Add(name, value);
}
}
catch
(Exception e)
{
Console.WriteLine(
"
读取文件错误:
"
+
e.Message);
return
null
;
}
fs.Close();
rf.Close();
return
maps;
}
public
static
bool
test(
string
str, Hashtable maps)
{
bool
ok
=
false
;
string
content
=
"
{\
"
threadId\
"
: \
"
39369
\
"
, \
"
groupId\
"
: \
"
101419
\
"
, \
"
groupType\
"
: \
"
3
\
"
, \
"
title\
"
: \
"
code\
"
, \
"
content\
"
: \
""
+ str +
"
\
"
}
"
;
//
Console.WriteLine(content);
string
url
=
"
http://home.cnblogs.com/WebService/GroupService.asmx/AddThreadComment
"
;
string
host
=
"
http://home.cnblogs.com
"
;
try
{
byte
[] bs
=
Encoding.ASCII.GetBytes(content);
HttpWebRequest req
=
(HttpWebRequest)HttpWebRequest.Create(url);
req.Method
=
"
POST
"
;
req.ContentType
=
"
application/json;charset=utf-8
"
;
req.ContentLength
=
bs.Length;
CookieContainer cc
=
new
CookieContainer();
cc.Add(
new
Uri(host),
new
Cookie(
"
cnzz_a1708446
"
, maps[
"
cnzz_a1708446
"
].ToString()));
cc.Add(
new
Uri(host),
new
Cookie(
"
ASP.NET_SessionId
"
, maps[
"
ASP.NET_SessionId
"
].ToString()));
cc.Add(
new
Uri(host),
new
Cookie(
"
.DottextCookie
"
, maps[
"
.DottextCookie
"
].ToString()));
req.CookieContainer
=
cc;
using
(Stream reqStream
=
req.GetRequestStream())
{
reqStream.Write(bs,
0
, bs.Length);
}
StringBuilder sb
=
new
StringBuilder(
""
);
using
(WebResponse wr
=
req.GetResponse())
{
System.IO.Stream respStream
=
wr.GetResponseStream();
System.IO.StreamReader reader
=
new
System.IO.StreamReader(respStream, System.Text.Encoding.GetEncoding(
"
gb2312
"
));
//
int h = 0;
string
t
=
""
;
do
{
t
=
reader.ReadLine();
//这个地方自己搞定吧,简单地写了一下成功与否
ok
=
true
;
}
while
(
!
reader.EndOfStream);
}
return
ok;
}
catch
(Exception ex)
{
Console.WriteLine(
"
异常在getPostRespone:
"
+
ex.Source
+
"
:
"
+
ex.Message);
return
ok;
}
}
static
void
Main(
string
[] args)
{
int
maxByte
=
1024
;
bool
isDebug
=
false
;
if
(args.Length
>=
2
){
maxByte
=
Int32.Parse(args[
0
]);
if
(args[
1
]
==
"
debug
"
)
isDebug
=
true
;
}
Hashtable maps
=
getCookieMap();
try
{
string
sPath
=
"
d:\\data.txt
"
;
FileStream fs
=
new
FileStream(sPath, FileMode.Open);
StreamReader rf
=
new
StreamReader(fs, System.Text.Encoding.GetEncoding(
"
gb2312
"
));
string
postStr
=
""
;
string
temp;
try
{
int
i
=
0
;
do
{
temp
=
rf.ReadLine();
postStr
+=
temp;
}
while
(
!
rf.EndOfStream);
int
len
=
postStr.Length;
for
(i
=
0
;i
<
len
/
maxByte
+
1
;i
++
)
{
if
(i
*
maxByte
+
maxByte
>=
len)
{
//
Console.WriteLine(postStr.Substring(i * maxByte, len - i * maxByte));
if
(test(i
+
"
:
"
+
postStr.Substring(i
*
maxByte, len
-
i
*
maxByte),maps))
Console.WriteLine(
"
post ok:
"
+
i);
if
(isDebug) Console.ReadLine();
}
else
{
//
Console.WriteLine(postStr.Substring(i * maxByte, maxByte));
if
(test(i
+
"
:
"
+
postStr.Substring(i
*
maxByte, maxByte),maps)){
Console.WriteLine(
"
post ok:
"
+
i);
if
(isDebug) Console.ReadLine();
}
}
}
}
catch
(Exception e)
{
Console.WriteLine(
"
读取文件错误:
"
+
e.Message);
return
;
}
}
catch
(Exception ex)
{
Console.WriteLine(ex.Message
+
"
----
"
+
ex.Source);
}
Console.WriteLine(
"
over!
"
);
Console.ReadLine();
}
}
}