1# 网络与连接开发常见问题 2 3## 网络请求中extraData支持哪几种的数据格式 4 5适用于:OpenHarmony SDK 3.2.2.5版本, API9 Stage模型 6 7extraData代表发送请求的额外数据,支持如下数据: 8 91. 当HTTP请求为POST、PUT方法时,此字段为HTTP请求的content。 10 112. 当HTTP请求为GET、OPTIONS、DELETE、TRACE、CONNECT方法时,此字段为HTTP请求的参数补充,参数内容会拼接到URL中进行发送。 12 133. 开发者传入string对象,开发者需要自行编码,将编码后的string传入。 14 15## 如何理解http请求的错误码28 16 17适用于:OpenHarmony SDK 3.2.2.5版本,API9 Stage模型 18 19错误码28代表CURLE_OPERATION_TIMEDOUT,操作超时。网络请求底层使用libcurl库,更多错误码可以查看相应文档。 20 21参考文档:[Response常用错误码](../reference/apis/js-apis-http.md#response常用错误码)和[Curl错误码](https://curl.se/libcurl/c/libcurl-errors.html) 22 23## \@ohos.net.http.d.ts的response错误码返回6是什么意思? 24 25适用于:OpenHarmony SDK 3.2.3.5版本 26 276表示地址无法解析主机,可以尝试ping一下request中的url,确认是否可以ping通。 28 29更多错误码参考[Response常用错误码](../reference/apis/js-apis-http.md#response常用错误码)或者[Curl错误码](https://curl.se/libcurl/c/libcurl-errors.html) 30 31## 调用camera拍摄的照片怎么上传到服务器 32 33适用于:所有版本 34 35具体开发参考文档:[上传下载](https://gitee.com/openharmony/app_samples/tree/master/Network/UploadDownload) 36 37## OpenHarmony的http接口如何设置cookie 38 39适用于:OpenHarmony SDK 3.2.6.5版本,API9 Stage模型 40 41HttpRequestOptions中的header是一个Object类型,可以直接在header里设置cookie,具体开发参考文档:[数据请求](../reference/apis/js-apis-http.md#request)。 42 43## http请求的官方示例代码里的extra data部分怎么写 44 45适用于:OpenHarmony SDK 3.2.6.5版本,API9 Stage模型 46 471. 鼠标移到extraData, ctrl+鼠标左键,跳转到sdk中,里面有关于extraData的传参说明。可以发现文档中对extraData的定义是这样的 extraData?: string | Object,也就是extraData支持string 和 Object两种类型。 48 492. 这两种写法都可以实现: 50 a.extraData:"data to send"; 51 b. extraData:{ data:"data to send", }, 52 53## 设备连接wifi后,如何获取当前设备的IP地址 54 55适用于:OpenHarmony SDK 3.2.7.5版本,API9 Stage模型 56 57使用wifi模块获取ipInfo,然后转换为IP常用格式,注意wifi.getIpInfo()接口需要权限 ohos.permission.GET_WIFI_INFO。 58 59示例: 60 61 62``` 63import wifi from '@ohos.wifi' 64@Entry 65@Component 66struct Page { 67 @State ip: string = '点击获取ip' 68 69 resolveIP(ip) { 70 if (ip < 0 || ip > 0xFFFFFFFF) { 71 throw ("The number is not normal!"); 72 } 73 return (ip >>> 24) + "." + (ip >> 16 & 0xFF) + "." + (ip >> 8 & 0xFF) + "." + (ip & 0xFF); 74 } 75 76 build() { 77 Row() { 78 Column() { 79 Text(this.ip) 80 .fontSize(50) 81 .fontWeight(FontWeight.Bold) 82 .onClick(()=>{ 83 this.ip = this.resolveIP(wifi.getIpInfo().ipAddress) 84 }) 85 } 86 .width('100%') 87 } 88 .height('100%') 89 } 90} 91``` 92 93## 如何判断当前是否有网络 94 95适用于:OpenHarmony SDK 3.2.6.5版本,API9 Stage模型 96 97通过如下hasDefaultNet接口判断是否有网络,注意需要申请 ohos.permission.GET_NETWORK_INFO 权限 98 99 100``` 101connection.hasDefaultNet().then((has)=> { 102 console.log("hasDefaultNet " + JSON.stringify(has)) 103}) 104``` 105