如题:谢谢帮忙代码如下:try
{
CString strHeaders = "Accept:*/*\r\n";
CString url = "http://" + m_strIP + "/CSTR/Server/CSTR.php?COMMAND=Login&Account=" + m_strAccount + "&Password=" + m_strPassword; //m_strIP, m_strAccount, m_strPassword分別為CSTR IP, 登入帳號,登入密碼
CInternetSession session;//建立會話
CHttpFile* pF=(CHttpFile*)session.OpenURL(url,1,INTERNET_FLAG_TRANSFER_ASCII||INTERNET_FLAG_RELOAD,headers,strlen(headers));//利用openurl登入 //讀取Web Server回傳的訊息
CString szData,szAllData;
while(pF->ReadString(szData))
{
//讀取Server回傳的資料
szAllData += szData;
}
if (szAllData.Find("<Value>0</Value>") >0) //若讀到的值為0表示登入失敗
{
TRACE("登入失敗");
}
else if (szAllData.Find("<Value>2</Value>") >0) //若讀到的值為2表示重複登入
{
TRACE("重複登入");
}
else if (szAllData.Find("<Value>1</Value>") >0) //若讀到的值為1表示登入成功
{
//--------------------------Step2:上傳XML檔案---------------------------------------------
//上傳命令COMMAND=AddContent //------------利用POST機制上傳xml---------
strHeaders = _T("Content-Type:application/x-www-form-urlencoded");
CHttpConnection* pConnection = session.GetHttpConnection(_T(m_strIP));
CHttpFile* fileGet;
fileGet = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, _T("/CSTR/Server/CSTR.php?COMMAND=AddContent")); CString strSentence,strGetSentence; if (fileGet)
{
//使用SendRequest將XML以post方式上傳到WebServer
fileGet->SendRequest(strHeaders, (LPVOID)(LPCTSTR)pTemp, nLength); //pTemp型態為BYTE陣列,存放要上傳的XML string,pTemp陣列開頭為XMLDATA=,後面接XML檔案讀出來的XML string while(fileGet->ReadString(strSentence)) // 取得Server回傳的資訊
{
strGetSentence = strGetSentence + strSentence + char(13) + char(10);
} if (strGetSentence.Find("<Message>true</Message>") >0) //若回傳為true表示上傳成功
{
TRACE("上傳成功");
}
else
{
TRACE("上傳失敗");
}
fileGet->Close();
}
}//End of if(szAllData.Find("<Value>1</Value>") >0)
//----------------------------Step3.Logout---------------------------------------------------------
//Logout命令範例:http://192.168.1.127/CSTR/Server/CSTR.php?COMMAND=Logout&Account=ETENManager&Password=12345
url = "http://" + m_strIP + "/CSTR/Server/CSTR.php?COMMAND=Logout&Account=" + m_strAccount + "&Password=" + m_strPassword;
pF = (CHttpFile*)session.OpenURL(url,1,INTERNET_FLAG_TRANSFER_ASCII||INTERNET_FLAG_RELOAD,headers,strlen(headers)); pF->Close();
session.Close();
} //End of try
catch(CInternetException *pEx) //例外處理
{
TCHAR szError[1024];
if (pEx->GetErrorMessage(szError, 1024))
TRACE0(szError);
else
TRACE0("There was an exception."); pEx->Delete();
}
{
CString strHeaders = "Accept:*/*\r\n";
CString url = "http://" + m_strIP + "/CSTR/Server/CSTR.php?COMMAND=Login&Account=" + m_strAccount + "&Password=" + m_strPassword; //m_strIP, m_strAccount, m_strPassword分別為CSTR IP, 登入帳號,登入密碼
CInternetSession session;//建立會話
CHttpFile* pF=(CHttpFile*)session.OpenURL(url,1,INTERNET_FLAG_TRANSFER_ASCII||INTERNET_FLAG_RELOAD,headers,strlen(headers));//利用openurl登入 //讀取Web Server回傳的訊息
CString szData,szAllData;
while(pF->ReadString(szData))
{
//讀取Server回傳的資料
szAllData += szData;
}
if (szAllData.Find("<Value>0</Value>") >0) //若讀到的值為0表示登入失敗
{
TRACE("登入失敗");
}
else if (szAllData.Find("<Value>2</Value>") >0) //若讀到的值為2表示重複登入
{
TRACE("重複登入");
}
else if (szAllData.Find("<Value>1</Value>") >0) //若讀到的值為1表示登入成功
{
//--------------------------Step2:上傳XML檔案---------------------------------------------
//上傳命令COMMAND=AddContent //------------利用POST機制上傳xml---------
strHeaders = _T("Content-Type:application/x-www-form-urlencoded");
CHttpConnection* pConnection = session.GetHttpConnection(_T(m_strIP));
CHttpFile* fileGet;
fileGet = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, _T("/CSTR/Server/CSTR.php?COMMAND=AddContent")); CString strSentence,strGetSentence; if (fileGet)
{
//使用SendRequest將XML以post方式上傳到WebServer
fileGet->SendRequest(strHeaders, (LPVOID)(LPCTSTR)pTemp, nLength); //pTemp型態為BYTE陣列,存放要上傳的XML string,pTemp陣列開頭為XMLDATA=,後面接XML檔案讀出來的XML string while(fileGet->ReadString(strSentence)) // 取得Server回傳的資訊
{
strGetSentence = strGetSentence + strSentence + char(13) + char(10);
} if (strGetSentence.Find("<Message>true</Message>") >0) //若回傳為true表示上傳成功
{
TRACE("上傳成功");
}
else
{
TRACE("上傳失敗");
}
fileGet->Close();
}
}//End of if(szAllData.Find("<Value>1</Value>") >0)
//----------------------------Step3.Logout---------------------------------------------------------
//Logout命令範例:http://192.168.1.127/CSTR/Server/CSTR.php?COMMAND=Logout&Account=ETENManager&Password=12345
url = "http://" + m_strIP + "/CSTR/Server/CSTR.php?COMMAND=Logout&Account=" + m_strAccount + "&Password=" + m_strPassword;
pF = (CHttpFile*)session.OpenURL(url,1,INTERNET_FLAG_TRANSFER_ASCII||INTERNET_FLAG_RELOAD,headers,strlen(headers)); pF->Close();
session.Close();
} //End of try
catch(CInternetException *pEx) //例外處理
{
TCHAR szError[1024];
if (pEx->GetErrorMessage(szError, 1024))
TRACE0(szError);
else
TRACE0("There was an exception."); pEx->Delete();
}
解决方案 »
- 如何将xml显示到winform窗体上?
- webBrowser中使用InvokeMember("click")模拟连接点击事件,但是无效【急,在线等】
- 请高手指点vs2010和sql2005的连接问题
- C# 中如何判断远程文件是否存在?
- 一个方法,参数不定,如何设计
- 怎么得到类似Windows 任务管理器中联网的部分数据(如发送,接收字节数等)(解决马上给分)
- 请教一下c#里的"检索"(站内查询)怎么写啊?请教一下c#里的"检索"(站内查询)怎么写啊?请教一下c#里的"检索"(站内查询)怎么写啊?
- 如何用C#代码控制word文档目录的自动生成?
- 关于自定义控件的问题
- 求大神 帮忙 捉急啊
- .net2005 下建了两个工程:一个是C#的另一个是C++的,遇到一些问题,请大家帮忙看看
- 请问一个关于CheckedListBox的问题
{
string strHeader = "Accept:*/*\r\n";
string url ="http://" + m_strIP + "/CSTR/Server/CSTR.php?COMMAND=Login&Account=" + m_strAccount + "&Password=" +m_strPassword; HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);
myRequest.AllowAutoRedirect = true; HttpWebResponse response = (HttpWebResponse)myRequest.GetResponse(); Stream stream = null; stream = response.GetResponseStream(); StreamReader myreader = new StreamReader(stream, System.Text.Encoding.Default, true); string pagefile = myreader.ReadToEnd(); if (pagefile.IndexOf("<Value>0</Value>") > 0)
{
.....
}
else if(pagefile.IndexOf("<Value>2</Value>") > 0)
{
.....
}
else if(pagefile.IndexOf("<Value>1</Value>") > 0)
{
string strurl = "http://" + m_strIP + "/CSTR/Server/CSTR.php?COMMAND=AddContent";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strurl);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.AllowAutoRedirect = true;
byte[] data = Encoding.UTF8.GetBytes("xml文档");
myRequest.ContentLength = data.Length;
Stream newStream = myRequest.GetRequestStream();
// 发送数据
newStream.Write(data, 0, data.Length);
newStream.Close(); HttpWebResponse response = (HttpWebResponse)myRequest.GetResponse(); Stream stream = null; stream = response.GetResponseStream(); StreamReader myreader = new StreamReader(stream, System.Text.Encoding.Default, true); string pagefile = myreader.ReadToEnd();
if(pagefile.IndexOf("<Message>true</Message>")>0)
{
...成功
}
else
{
..失败
}
}
}
下面登出可以按照上面登入那样写。。