c語言http服務
按照HTTP協議的規定,理清楚相關功能。
然後軟體模型的方式解釋HTTP的運行過程,可以使用UML語言。
然後將UML語言轉換成C語言即可。
Ⅱ c語言實現伺服器用http協議傳輸文件到瀏覽器
你可以參考這段代碼,這個是點擊下載butten的代碼
Ⅲ C語言編寫http proxy代理程序問題
沒有函數可以做這個,你要自己把客戶發給你的URL中的命令(GET。。)HOST NAME, PORT NAME, HTTP/1.1OR1.0 還有PATH找出來,然後和伺服器建立連接,再把header 改編發給伺服器,具體的格式可以用wireshark看,然後接受伺服器返回給你的包,原封不動再返回給client
Ⅳ C語言或者C++如何調用一個http介面並得到返回結果
用jni
首先
java
中
public
class
testhello
{
static
{
system.loadlibrary("testhellos");
}
public
static
native
void
hello(string
msg);
public
native
void
getsysid();
public
native
string
getkeycode(string
sysid);
public
native
boolean
testkeycode(string
sysid,
string
keycode);
public
static
void
main(string[]
args)
{
//
hello("hello,kimm!");
testhello
t=
new
testhello();
t.getsysid();
}
}
用javac
testhello.java,
java
testhello,javah
-classpath
.
-verbose
testhello
。將生產的頭文件用到c++
中的
heardfileds
中。然後在
sources
files
中實現
heardfieds
的方法。實現的方法,其實就是你要調用c++的方法、
Ⅳ 我想編寫一個簡單的C語言或python http伺服器(高懸賞,255)
前端代碼template/index.html:
<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="UTF-8">
<title>Ajax示例</title>
</head>
<body>
<div><p>發送到伺服器的消息:</p></div>
<div><inputid="message"type="text"></div>
<div><buttontype="button"onclick="submit()">發送</button></div>
<div><p>來自伺服器的消息:</p></div>
<div><p><spanid="response"style="color:lawngreen;"></span></p></div>
</body>
<scriptsrc="
<script>
functionsubmit(){
constmessage=$("#message").val();
$.ajax({
url:"/message",
type:"post",
data:JSON.stringify({"message":message}),
contentType:"application/json",
dataType:"json",
success:(data)=>{
$("#response").text(data.response);
}
})
}
</script>
</html>
Pythonflask代碼app.py:
fromflaskimportFlask,request,render_template
app=Flask(__name__)
@app.route('/')
defindex():
returnrender_template('index.html')
@app.route('/message',methods=['POST'])
defmessage():
data=request.json
return{'response':'客戶端說「%s」'%data['message']}
if__name__=="__main__":
app.run()
Ⅵ C語言,http報文,post請求,求大神詳解
URL要放在POST和HTTP/1.1之間,注意加空格。
URL好像不需要域名部分。
Ⅶ c語言怎麼實現http 請求頭發送
1。建立到伺服器的TCP連接
2。向伺服器發送GET或者POST報文,報文格式請參考HTTP協議
3。接收伺服器返回的報文
Ⅷ 如何用c語言實現基於http的webservice
package com.yun.test;
import java.rmi.RemoteException;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.message.PrefixedQName;
import org.apache.axis.message.SOAPHeaderElement;
import com.cezanne.golden.user.Exception;
import com.cezanne.golden.user.UserManagerServiceProxy;
import javax.xml.namespace.QName;
import java.net.MalformedURLException;
import javax.xml.rpc.ServiceException;
import javax.xml.soap.Name;
import javax.xml.soap.SOAPException;
public class testWebService {
public static String getResult() throws ServiceException, MalformedURLException, RemoteException, SOAPException
{
//標識Web Service的具體路徑
String endpoint = "WebService服務地址";
// 創建 Service實例
Service service = new Service();
// 通過Service實例創建Call的實例
Call call = (Call) service.createCall();
//將Web Service的服務路徑加入到call實例之中.
call.setTargetEndpointAddress( new java.net.URL(endpoint) );//為Call設置服務的位置
// 由於需要認證,故需要設置調用的SOAP頭信息。
Name headerName = new PrefixedQName( new QName("發布的wsdl里的targetNamespace里的url", "string_itemName") );
org.apache.axis.message.SOAPHeaderElement header = new SOAPHeaderElement(headerName);
header.addTextNode( "blablabla" );
call.addHeader(header);
// SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement("發布的wsdl里的targetNamespace里的url", "SoapHeader");
// soapHeaderElement.setNamespaceURI("發布的wsdl里的targetNamespace里的url");
// try
// {
// soapHeaderElement.addChildElement("string_itemName").setValue("blablabla");
// }
// catch (SOAPException e)
// {
// e.printStackTrace();
// }
// call.addHeader(soapHeaderElement);
//調用Web Service的方法
org.apache.axis.description.OperationDesc oper;
org.apache.axis.description.ParameterDesc param;
oper = new org.apache.axis.description.OperationDesc();
oper.setName("opName");
param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg0"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName(", "string"), java.lang.String.class, false, false);
param.setOmittable(true);
oper.addParameter(param);
param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg1"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName(", "string"), java.lang.String.class, false, false);
param.setOmittable(true);
oper.addParameter(param);
param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg2"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName(", "string"), java.lang.String.class, false, false);
param.setOmittable(true);
oper.addParameter(param);
oper.setReturnType(new javax.xml.namespace.QName(", "string"));
oper.setReturnClass(java.lang.String.class);
oper.setReturnQName(new javax.xml.namespace.QName("", "return"));
oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
oper.setUse(org.apache.axis.constants.Use.LITERAL);
oper.addFault(new org.apache.axis.description.FaultDesc(
new javax.xml.namespace.QName("發布的wsdl里的targetNamespace里的url", "Exception"),
"Exception",
new javax.xml.namespace.QName("發布的wsdl里的targetNamespace里的url", "Exception"),
true
));
call.setOperation( oper );
call.setOperationName(new javax.xml.namespace.QName("發布的wsdl里的targetNamespace里的url", "opName"));
//調用Web Service,傳入參數
String res = ( String ) call.invoke( new Object[]("arg0","arg1"));
System.out.println("===============");
return res;
}
/**
* @param args
*/
public static void main(String[] args) {
try {
System.out.println(getResult());
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (ServiceException e) {
e.printStackTrace();
} catch (SOAPException e) {
e.printStackTrace();
}
}
}
Ⅸ C語言下載http伺服器html文件
linux上curl -s 網站名,出來的就是那個網站的html語言,然後你復制粘貼到一個html文件里就ok了。如果沒有curl工具,自己網路下載一個。
Ⅹ 如何用c語言實現http伺服器
去看一下《Advanced Linux Programming》這本書吧,第11章講的就是怎麼用C語言實現一Http伺服器。 這里有下載地址(英文的): http://www.advancedlinuxprogramming.com/alp-folder 英文看起來不順的話可以上網找找有沒有中文版的這本書,應該叫Linux高級編程吧~~~參考資料: http://www.advancedlinuxprogramming.com/alp-folder